Euforia - Fungsi
Fungsi euforia sama seperti prosedur, tetapi mengembalikan nilai, dan dapat digunakan dalam ekspresi. Bab ini menjelaskan cara menulis fungsi Anda sendiri di Euforia.
Definisi Fungsi
Sebelum kita menggunakan suatu fungsi, kita perlu mendefinisikannya. Cara paling umum untuk menentukan fungsi di Euphoria adalah dengan menggunakanfunction kata kunci, diikuti dengan nama fungsi unik, daftar parameter (yang mungkin kosong), dan blok pernyataan yang diakhiri dengan end functionpernyataan. Sintaks dasar ditampilkan di sini -
function functionname(parameter-list)
statements
..........
return [Euphoria Object]
end function
Contoh
Fungsi sederhana bernama sayHello yang tidak menggunakan parameter ditentukan di sini -
function sayHello()
puts(1, "Hello there")
return 1
end function
Memanggil Fungsi
Untuk memanggil suatu fungsi di suatu tempat nanti dalam skrip, Anda hanya perlu menulis nama fungsi itu sebagai berikut -
#!/home/euphoria-4.0b2/bin/eui
function sayHello()
puts(1, "Hello there")
return 1
end function
-- Call above defined function.
sayHello()
Ini menghasilkan hasil sebagai berikut -
Hello there
Parameter Fungsi
Sampai sekarang kita telah melihat fungsi tanpa parameter. Tetapi ada fasilitas untuk melewatkan parameter yang berbeda saat memanggil suatu fungsi. Parameter yang diteruskan ini dapat ditangkap di dalam fungsi dan manipulasi apa pun dapat dilakukan atas parameter tersebut.
Suatu fungsi dapat mengambil beberapa parameter yang dipisahkan dengan koma.
Contoh
Mari kita lakukan sedikit modifikasi pada fungsi sayHello kita . Kali ini dibutuhkan dua parameter -
#!/home/euphoria-4.0b2/bin/eui
function sayHello(sequence name,atom age)
printf(1, "%s is %d years old.", {name, age})
return 1
end function
-- Call above defined function.
sayHello("zara", 8)
Ini menghasilkan hasil sebagai berikut -
zara is 8 years old.
The pengembalian Pernyataan
Fungsi Euphoria harus memiliki pernyataan kembali sebelum pernyataan penutupend function. Objek Euphoria apa pun dapat dikembalikan. Akibatnya, Anda dapat memiliki beberapa nilai pengembalian, dengan mengembalikan urutan objek. Sebagai contoh
return {x_pos, y_pos}
Jika Anda tidak memiliki apa-apa untuk dikembalikan, maka cukup kembalikan 1 atau 0. Nilai kembali 1 menunjukkan keberhasilan dan 0 menunjukkan kegagalan