(Bu yöntemin ismi şakayla karışık olarak "self-important" olarak kalıyor.)
Seçerek import[1] ve yerel import[2,3] olanaklarını çok çok kolaylaştıran ve hatta işlev parametresi kullanımında önceden import gerektirmeyen bir yöntem keşfedildi:
// Bu şablon Phobos'a ekleniyor:
template from(string moduleName) {
mixin("import from = " ~ moduleName ~ ";");
}
// Yöntem, aşağıdaki kullanımı sağlıyor.
// (Derleyicide değişiklik gerekmiyor; deneyebilirsiniz.)
void foo(from!"std.datetime".SysTime zaman) {
// ...
}
void main() {
// İşin güzel ve kötü tarafı, from'un eklediği SysTime sembolü yalnızca
// foo() içinde görülüyor. Çağıranların da hangi SysTime'dan
// bahsettiklerini belirtmeleri şart (modül düzeyinde import da olabilirdi):
import std.datetime : SysTime;
foo(SysTime.init);
}
Konusu şuradaydı:
http://forum.dlang.org/thread/tzqzmqhankrkbrfsrmbo@forum.dlang.org
Blogu şurada:
https://dlang.org/blog/2017/02/13/a-new-import-idiom/
Reddit konusu:
https://www.reddit.com/r/programming/comments/5tt33y/a_new_import_idiom_for_d/
Ali
[1] http://ddili.org/ders/d/moduller.html#ix_moduller.import,%20se%C3%A7erek
[2] http://ddili.org/ders/d/moduller.html#ix_moduller.import,%20yerel
[3] http://ddili.org/ders/d/katmalar.html#ix_katmalar.import,%20yerel
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Permalink
Reply