Bagikan melalui


Tipe Unit

Jenisnya unit adalah jenis yang menunjukkan tidak adanya nilai tertentu; unit jenis hanya memiliki satu nilai, yang bertindak sebagai tempat penampung ketika tidak ada nilai lain yang ada atau diperlukan.

Sintaksis

// The value of the unit type.
()

Komentar

Setiap ekspresi F# harus dievaluasi ke nilai. Untuk ekspresi yang tidak menghasilkan nilai yang menarik, nilai jenis unit digunakan. Jenisnya unit menyerupan void jenis 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 menyimpan tempat di mana nilai diperlukan oleh sintaks bahasa, tetapi ketika tidak ada nilai yang diperlukan atau diinginkan. Contohnya mungkin merupakan nilai printf pengembalian fungsi. Karena tindakan penting operasi printf terjadi dalam fungsi , fungsi tidak harus mengembalikan nilai aktual. Oleh karena itu, nilai yang dikembalikan berjenis unit.

Beberapa konstruksi mengharapkan unit nilai. Misalnya, do pengikatan atau kode apa pun di tingkat atas modul diharapkan untuk dievaluasi ke unit nilai. Pengkompilasi melaporkan peringatan saat do pengikatan atau kode di tingkat atas modul menghasilkan hasil selain unit nilai 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 fungsi; tidak muncul dalam bahasa pemrograman .NET lainnya. Dalam program murni fungsi, di mana fungsi tidak memiliki efek samping, nilai pengembalian akhir adalah satu-satunya hasil dari panggilan fungsi. Oleh karena itu, ketika hasilnya diabaikan, itu adalah kemungkinan kesalahan pemrograman. Meskipun F# bukan bahasa pemrograman murni fungsional, ini adalah praktik yang baik untuk mengikuti gaya pemrograman fungsional jika memungkinkan.

Lihat juga