Fungsi Scala Call-by-name
Umumnya, parameter-parameter fungsi adalah parameter-parameter by-value; yakni,nilai dari parameter ditentukan sebelum ia dilewatkan ke fungsi. Tapi bagaimana kalau kita perlu menulis sebuah fungsi yang menerima parameter sebuah ekspresi yang kita tidak ingin mengevaluasi nya sampai ia dipanggil didalam fungsi kita? Untuk situasi seperti ini, scala menawarkan parameter call-by-name.
mekanisme call-by-name melewatkan blok kode ke variable dan setiap saat variable diakses, blok kode akan eksekusi dan nilai akan hitung.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
disini, kita mendeklarasikan method delayed
, yang mana membutuhkan parameter call-by-name
dengan meletakkan simbol =>
antara nama variable dengan tipe variable. Ketika kode diatas di kompile dan dieksekusi, menghasilkan hasil sebagai berikut:
1 2 3 4 5 6 7 8 |
|
di sini, delayed
mencetak sebuah pesan yang menunjukkan bahwa telah masuk kedalam method. Kemudian, delayed
mencetak sebuah pesan dengan nilainya. Terakhir, delayed mengembalikan t
.