Menggunakan variabel untuk menyimpan nilai
Semua program biasanya terdiri dari banyak langkah di mana program beroperasi pada data. Sebagai bagian dari menjalankan semua langkah tersebut, biasanya menyimpan hasil yang terputus-putus, data, dalam referensi bernama. Kemudian Anda dapat membaca atau memanipulasi data nanti. Referensi bernama biasanya disebut sebagai variabel.
Variabel, mengikat nilai
Variabel diberi nama referensi yang terikat pada suatu nilai, yang ingin Anda tetap rujuk dalam kode Anda. Di F#, ini dianggap sebagai nilai yang mengikat. Jadi yang Anda lakukan adalah menetapkan, atau mengikat, nilai ke referensi bernama, sebuah variabel. Untuk mengikat nilai, Anda menggunakan kata kunci let
, nama untuk referensi Anda dan memberikan nilai padanya, seperti pada kode di bawah ini:
let name = "Chris"
name
adalah referensi bernama dan "Chris" nilai terikatnya.
Setelah nilai ditetapkan ke variabel, nilai tidak dapat diubah, nilai tersebut bersifat tidak dapat diubah. Kode berikut tidak dapat dikompilasi dan menghasilkan kesalahan yang mengatakan sesuatu seperti "kesalahan FS0027: Nilai ini tidak dapat diubah."
let name = "Chris"
name <- "Luis" // not allowed
Jadikan nilai itu dapat diubah
Anda dapat mengubah variabel, tetapi Anda perlu memberi sinyal bahwa Anda ingin membuatnya dapat diubah. Dengan menggunakan kata kunci mutable
dalam definisi variabel, Anda dapat mengubah nilai tanpa kesalahan kompilasi, seperti pada kode berikut:
let mutable name = "Chris"
name <- "Luis" // this statement is now allowed
Jenis variabel
Berbagai jenis yang berbeda ada di F#. Banyak jenis yang berkaitan dengan menyimpan nomor dengan ukuran berbeda dan dengan atau tanpa desimal. Jenis lain diasosiasikan dengan string teks atau variabel Boolean. Berikut adalah daftar jenis yang mungkin Anda temui ketika Anda mulai belajar F#.
Jenis | Deskripsi |
---|---|
bool | nilai yang memungkinkan adalah true atau false |
int | Nilai dari -2.147.483.648 hingga 2.147.483.647. |
string | teks Unicode |
mengambang, ganda | Jenis titik float 64-bit. |
Jenis disimpulkan
Saat mendeklarasikan variabel, Anda dapat melakukannya dengan atau tanpa jenis. Jika Anda tidak memberikan jenis saat mendeklarasikan variabel, pengompilasi F# membuat tebakan terbaik tentang jenisnya berdasarkan nilai yang Anda tetapkan ke variabel. Perhatikan pernyataan berikut:
let age = 65 // int
let PI = 3.14 // float
let name = "my name" // string
Pengompilasi menyimpulkan jenis yang seharusnya, dan itu benar. Anda juga bisa lebih eksplisit tentang apa yang Anda inginkan untuk jenis tersebut. Untuk menetapkan data, Anda menggunakan sintaks variableName:<type>
, seperti dalam kode ini:
let sum:float = 0.0
Cetak ke layar
Anda sering ingin dapat mencetak ke layar. Bisa karena berbagai alasan, seperti:
- Output aplikasi: Aplikasi melakukan semacam perhitungan, dan Anda ingin melihat outputnya.
- Penelusuran kesalahan: Sebagai bagian dari penelusuran kesalahan kode, Anda mungkin harus menghasilkan hasilnya pada titik tertentu untuk memahami apa yang salah.
Ada alasan lain untuk ingin menghasilkan output ke layar, tetapi dua skenario sebelumnya adalah yang paling umum.
Jadi bagaimana Anda mencetak ke layar? Di F#, ada tiga fungsi berbeda yang dapat Anda gunakan. Fungsi tersebut adalah printf
, printfn
, dan bahkan Console.WriteLine
. Jadi apa bedanya?
printf
: Ini mencetak kestdout
sebaris (tidak ada karakter baris baru).printfn
: Ini mencetak kestdout
menambahkan karakter baris baru.Console.WriteLine
: Fungsi ini berasal dari namespace layananSystem
dan berfungsi di semua bahasa .NET.
Sekarang Anda tahu perbedaannya, tetapi yang mana yang harus Anda gunakan? Nah, printf
dan printfn
dianggap lebih idiomatis dan lebih disukai di F#.
Pemformatan
Sebagai bagian dari pencetakan ke layar, Anda mungkin ingin menggabungkan teks dan angka. Atau Anda mungkin ingin output diformat dengan cara tertentu, seperti dengan menggunakan:
Argumen posisi: Untuk memformat, Anda dapat menggunakan fungsi .NET seperti
String.Format
, yang menggunakan argumen posisi sepertiString.Format("My name is {0} and I live in {1}", "Chris", "UK")
.Interpolasi string: Cara lain untuk menggabungkan variabel dan teks adalah dengan menggunakan sesuatu yang disebut interpolasi. Untuk menggunakannya, Anda harus mendahului string dengan tanda
$
dan menunjukkan tempat penampung dengan tanda kurung{}
. Berikut adalah contoh penggunaan interpolasi:let name = "Luis" let company = "Microsoft" printfn $"Name: {name}, Company: {company}"
Anda juga dapat menambahkan ekspresi di antara tanda kurung, seperti:
let firstNumber = 2000 let secondNumber = 21 printfn $"The year is: {firstNumber + secondNumber}"
Catatan
Tidak ada pemeriksaan jenis menggunakan interpolasi, jadi mungkin tampak mudah digunakan. Pastikan untuk menggabungkan hal-hal dengan benar.
Penentu: Anda juga dapat menggunakan penentu format sebagai bagian dari apa yang Anda coba cetak. Menggunakan penentu adalah cara yang paling umum digunakan untuk memformat dalam F#. Berikut contohnya:
let name = "Chris" printf "Hi %s" name // prints: Hi Chris
Di sini Anda dapat melihat bagaimana
%s
pemformat digunakan untuk mencampur string pertama dengan variabelname
.Catatan
Ketika Anda menggunakan pemformat seperti %s atau %i, pengompilasi memeriksa jenis. Jika argumen posisi Anda bukan jenis yang Anda tentukan, argumen tersebut akan menampilkan kesalahan.
Penentu format
Ada banyak penentu format. Berikut adalah beberapa yang mungkin Anda temui.
Penentu | Deskripsi | Contoh |
---|---|---|
%s | Digunakan untuk string dan konten yang tidak lolos | printf "Hello %s" name |
%d, %i | Diformat sebagai bilangan bulat desimal, ditandatangani jika jenis bilangan bulat dasar ditandatangani | printf "Age: %i" 65 |
%b | Boolean true atau false |
printf "Setting on: %b" true |
Ada informasi selengkapnya tentang pemformatan. Jika Anda ingin mengetahui semua kemampuannya, lihat pemformatan dalam dokumen F#.