Jenis Unit

Jenis unit adalah jenis yang menunjukkan ketiadaan nilai tertentu; jenis unit hanya memiliki nilai tunggal, yang bertindak sebagai tempat penampung ketika tidak ada nilai lain atau saat diperlukan.

Sintaks

// The value of the unit type.
()

Keterangan

Setiap ekspresi F# harus melakukan evaluasi ke nilai. Untuk ekspresi yang tidak menghasilkan nilai yang menarik, nilai jenis unit digunakan. Jenis unit ini menyerupai jenis void dalam bahasa seperti C# dan C++.

Jenis unit memiliki nilai tunggal, dan nilai tersebut ditunjukkan oleh token ().

Nilai jenis unit ini sering digunakan dalam pemrograman F# untuk menampung tempat saat nilai diperlukan oleh sintaks bahasa pemrogram, tetapi ketika tidak ada nilai yang diperlukan atau diinginkan. Contohnya mungkin nilai pengembalian dari fungsi printf. Karena tindakan penting dari operasi printf terjadi dalam fungsi, fungsi tidak harus mengembalikan nilai aktual. Oleh karena itu, nilai pengembalian berjenis unit.

Beberapa konstruksi mengharapkan nilai unit. Misalnya, pengikatan do atau kode apa pun di tingkat atas modul diharapkan untuk mengevaluasi ke nilai unit. Kompilator melaporkan peringatan saat pengikatan do atau kode di tingkat atas modul menghasilkan hasil selain nilai unit yang tidak digunakan, seperti yang ditunjukkan dalam contoh berikut.

let function1 x y = x + y
// The next line results in a compiler warning.
function1 10 20
// Changing the code to one of the following eliminates the warning.
// Use this when you do want the return value.
let result = function1 10 20
// Use this if you are only calling the function for its side effects,
// and do not want the return value.
function1 10 20 |> ignore

Peringatan ini adalah karakteristik pemrograman fungsional; peringatan ini tidak muncul dalam bahasa pemrograman .NET lainnya. Dalam program fungsional murni, saat fungsi tidak memiliki efek samping, nilai pengembalian akhir merupakan satu-satunya hasil dari panggilan fungsi. Oleh karena itu, ketika hasilnya diabaikan, kemungkinan itu merupakan kesalahan pemrograman. Meskipun F# bukan bahasa pemrograman fungsional yang murni, ini merupakan praktik yang baik untuk mengikuti gaya pemrograman fungsional jika memungkinkan.

Lihat juga