Bagikan melalui


Jenis F#

Topik ini menjelaskan jenis yang digunakan di F# dan cara jenis F# dinamai dan dijelaskan.

Ringkasan Jenis F#

Beberapa jenis dianggap sebagai jenis primitif, seperti bool jenis Boolean dan jenis titik integral dan mengambang dari berbagai ukuran, yang mencakup jenis untuk byte dan karakter. Jenis-jenis ini dijelaskan dalam Jenis Primitif.

Jenis lain yang disertakan dalam bahasa pemrogram termasuk tuple, daftar, array, urutan, rekaman, dan gabungan terdiskriminasi. Jika memiliki pengalaman dengan bahasa pemrogram .NET lainnya dan mempelajari F#, Anda harus membaca topik untuk setiap jenis. Jenis F# khusus ini mendukung gaya pemrograman yang umum untuk bahasa pemrograman fungsi. Banyak dari jenis ini memiliki modul terkait di pustaka F# yang mendukung operasi umum pada jenis ini.

Jenis fungsi mencakup informasi tentang jenis parameter dan jenis pengembalian.

.NET Framework adalah sumber jenis objek, jenis antarmuka, jenis delegasi, dan lainnya. Anda dapat menentukan jenis objek Anda sendiri seperti yang bisa dilakukan dalam bahasa .NET lainnya.

Selain itu, kode F# dapat menentukan alias, yang diberi nama singkatan jenis, yang merupakan nama alternatif untuk jenis. Anda mungkin menggunakan singkatan jenis ketika jenis mungkin berubah di masa mendatang dan Anda ingin menghindari perubahan kode yang bergantung pada jenisnya. Atau, Anda mungkin menggunakan singkatan jenis sebagai nama yang mudah diingat untuk jenis yang dapat membuat kode lebih mudah dibaca dan dipahami.

F# menyediakan jenis kumpulan bermanfaat yang dirancang dengan mempertimbangkan pemrograman fungsi. Menggunakan jenis kumpulan ini membantu Anda menulis kode yang lebih berfungsi dalam gaya. Untuk informasi selengkapnya, lihat Jenis Kumpulan F#.

Sintaks untuk Jenis

Dalam kode F#, Anda sering kali harus menuliskan nama-nama jenisnya. Setiap jenis memiliki bentuk sintaksis, dan Anda menggunakan bentuk sintaksis ini dalam anotasi jenis, deklarasi metode abstrak, deklarasi delegasi, tanda tangan, dan konstruksi lainnya. Setiap kali Anda mendeklarasikan konstruksi program baru dalam penerjemah, penerjemah mencetak nama konstruksi dan sintaks untuk jenisnya. Sintaks ini mungkin hanya pengidentifikasi untuk jenis yang ditentukan pengguna atau pengidentifikasi bawaan seperti untuk int atau string, tetapi untuk jenis yang lebih kompleks, sintaksnya lebih kompleks.

Tabel berikut ini memperlihatkan aspek sintaks jenis untuk jenis F#.

Jenis Sintaks jenis Contoh
jenis primitif type-name int

float

string
jenis agregat (kelas, struktur, gabungan, rekaman, enum, dan sebagainya) type-name System.DateTime

Color
singkatan jenis type-abbreviation-name bigint
jenis yang sepenuhnya memenuhi syarat namespaces.type-name

or

modules.type-name

or

namespaces.modules.type-name
System.IO.StreamWriter
array type-name[] atau

array type-name
int[]

array<int>

int array
array dua dimensi type-name[,] int[,]

float[,]
array tiga dimensi type-name[,,] float[,,]
tuple type-name1 * type-name2 ... Contohnya, (1,'b',3) memiliki jenis int * char * int
jenis generik type-parameter generic-type-name

or

generic-type-name<type-parameter-list>
'a list

list<'a>

Dictionary<'key, 'value>
jenis yang dikonstruksi (jenis generik yang memiliki argumen jenis tertentu yang disediakan) type-argument generic-type-name

or

generic-type-name<type-argument-list>
int option

string list

int ref

option<int>

list<string>

ref<int>

Dictionary<int, string>
jenis fungsi yang memiliki parameter tunggal parameter-type1 ->return-type Fungsi yang mengambil int dan mengembalikan string memiliki jenis int -> string
jenis fungsi yang memiliki beberapa parameter parameter-type1 ->parameter-type2 -> ... ->return-type Fungsi yang mengambil int dan float lalu mengembalikan string memiliki jenis int -> float -> string
fungsi urutan yang lebih tinggi sebagai parameter (function-type) List.map memiliki jenis ('a -> 'b) -> 'a list -> 'b list
delegasi delegasi function-type delegate of unit -> int
jenis fleksibel #type-name #System.Windows.Forms.Control

#seq<int>
Topik Deskripsi
Jenis Primitif Menjelaskan jenis sederhana bawaan seperti jenis integral, jenis Boolean, dan jenis karakter.
Tipe Unit Menjelaskan jenis unit, jenis yang memiliki satu nilai dan yang ditunjukkan oleh (); setara dengan void di C# dan Nothing dalam Visual Basic.
Tuple Menjelaskan jenis tuple, jenis yang terdiri dari nilai terkait dari jenis apa pun yang dikelompokkan berpasangan, tiga, empat, dan sebagainya.
Opsi Menjelaskan jenis opsi, jenis yang mungkin memiliki nilai atau kosong.
Daftar Menjelaskan daftar, yang merupakan rangkaian elemen berurutan dan tidak dapat diubah, semuanya dari jenis yang sama.
Array Menjelaskan array, yang merupakan sekumpulan elemen yang berurutan dan dapat diubah dari jenis yang sama yang menempati blok memori yang bersebelahan dan berukuran tetap.
Urutan Menjelaskan jenis urutan, yang mewakili serangkaian nilai logis; nilai individual dikomputasi hanya seperlunya.
Rekaman Menjelaskan jenis catatan, agregat kecil dari nilai bernama.
Gabungan Terdiskriminasi Menjelaskan jenis gabungan terdiskriminasi, jenis yang nilainya dapat menjadi salah satu dari sekumpulan jenis yang mungkin.
Fungsi Menjelaskan nilai fungsi.
Kelas Menjelaskan jenis kelas, jenis objek yang sesuai dengan jenis referensi .NET. Jenis kelas dapat berisi anggota, properti, antarmuka yang diimplementasikan, dan jenis dasar.
Structs Menjelaskan jenis struct, jenis objek yang sesuai dengan jenis nilai .NET. Jenis struct biasanya mewakili agregat kecil data.
Antarmuka Menjelaskan jenis antarmuka, yang merupakan jenis yang mewakili sekumpulan anggota yang menyediakan fungsionalitas tertentu tetapi tidak berisi data. Jenis antarmuka harus diimplementasikan oleh jenis objek agar berguna.
Delegasi Menjelaskan jenis delegasi, yang mewakili fungsi sebagai objek.
Enumerasi Menjelaskan jenis enumerasi, yang nilainya termasuk dalam sekumpulan nilai bernama.
Atribut Menjelaskan atribut, yang digunakan untuk menentukan metadata untuk jenis lain.
Jenis Pengecualian Menjelaskan pengecualian, yang menentukan informasi kesalahan.