Merhaba,
Bugün şu kod sayesinde iota
'nın save()
özelliği olmadığını öğrendim:
import std.stdio;
import std.range;
void main()
{
foreach(num; //inclusiveRange!char(65, 69).chunks(3)/*
iota!char('a', 'f').chunks(3)//*/
) {
num.writeln(": ", num.walkLength);
}
} /*
: 3
: 2
*/
Normalda olması gereken çıktı aşağıdaki gibi olmalıydı. Bunu denemek için yorum karakterlerini silip Ali hocanın ile birlikte geliştirdiğimiz iota'nın alternatifine geçiş yapmalısınız.
>ABC: 3
DE: 2
O yapıda (inclusiveRange
) basitçe auto save() => this;
özelliği var ve walkLength()
aralığı saymadan evvel bunu kullanıyor olmalı. Çünkü writeln()
tüketmesine de fırsat veriyor.
Peki sahip olduğumuz aralığı kaydetmenin en doğru yöntemi bu mudur, bu kadar basit midir?
Teşekkürler...