Sözleşmeli programlama nedir ? Nasıl kullanılır ? örnekler...
Mesela :
long square_root(long x)
in //Burada fonksiyona giren değer sıfırdan büyükse mi fonksiyonu tanımlamayı başlat diyor ?
{
assert(x >= 0);
}
out (result) // Burada da döndürülen değer assertteki gibi mi ise fonksiyonu tanımla diyor ?
{
assert((result * result) <= x && (result+1) * (result+1) >= x);
}
body //Burada da şartlar yerine getirilirse fonksiyonun içeriğinin ne olacağı gösteriliyor ?
{
return cast(long)std.math.sqrt(cast(real)x);
}
unittest //Sanırım buradada fonksiyonun doğru çalışıp çalışmadığını kontrol ediyoruz.
{
assert(square_root(36) == 6);
}
Yorumlarım doğru mu ? Birde istersek in, out , unittest ten birini kullanmayabilir miyiz?
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]