Menggunakan variabel untuk menyimpan nilai

Selesai

Semua program biasanya terdiri dari banyak langkah di mana program beroperasi pada data. Sebagai bagian dari menjalankan semua langkah tersebut, biasanya menyimpan hasil sementara, 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 ke nilai, yang ingin Anda tetap rujuk dalam kode Anda. Dalam F#, ini dianggap sebagai mengikat nilai. Jadi apa yang Anda lakukan adalah menetapkan, atau mengikat, nilai ke referensi bernama, variabel. Untuk mengikat nilai, Anda menggunakan kata kunci let, nama untuk referensi Anda dan menetapkan nilai ke nilai tersebut, seperti dalam 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 tidak dapat diubah. Kode berikut tidak akan mengkompilasi dan menghasilkan kesalahan yang mengatakan sesuatu seperti "kesalahan FS0027: Nilai ini tidak dapat diubah."

let name = "Chris"
name <- "Luis" // not allowed

Membuatnya 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, Anda dapat mengubah nilai tanpa kesalahan kompilasi, seperti dalam kode berikut:

let mutable name = "Chris"
name <- "Luis" // this statement is now allowed

Jenis variabel

Rentang jenis yang berbeda ada di F#. Banyak jenis berkaitan dengan menyimpan angka dengan ukuran yang berbeda, baik dengan atau tanpa desimal. Jenis lain dikaitkan dengan string teks atau variabel Boolean. Berikut adalah daftar jenis yang mungkin Anda temui saat mulai mempelajari F#.

Jenis Deskripsi
bool nilai yang mungkin true atau false
Int Nilai dari -2.147.483.648 hingga 2.147.483.647.
string Teks Unicode
float (angka titik mengambang), double (angka presisi ganda) Jenis titik mengambang 64-bit.

Jenis disimpulkan

Saat Anda mendeklarasikan variabel, Anda dapat melakukannya dengan atau tanpa jenis. Jika Anda tidak memberikan jenis ketika Anda mendeklarasikan variabel, pengkompilasi F# membuat tebakan terbaik tentang jenisnya berdasarkan nilai yang Anda tetapkan ke variabel. Pertimbangkan pernyataan berikut:

let age = 65 // int
let PI = 3.14 // float
let name = "my name" // string

Pengkompilasi menentukan jenisnya, dan itu benar. Anda juga bisa lebih jelas tentang jenis yang Anda inginkan. Untuk menetapkan data, Anda menggunakan sintaks variableName:<type>, seperti dalam kode ini:

let sum:float = 0.0

Anda sering ingin dapat mencetak ke layar. Bisa jadi karena berbagai alasan, seperti:

  • Output aplikasi: Aplikasi melakukan semacam perhitungan, dan Anda ingin melihat outputnya.
  • Penelusuran kesalahan: Sebagai bagian dari penelusuran kesalahan pada kode Anda, Anda mungkin harus menampilkan hasil di titik tertentu untuk mengetahui apa yang sedang tidak berjalan dengan benar.

Ada alasan lain untuk ingin menghasilkan ke layar, tetapi dua skenario sebelumnya adalah yang paling umum.

Bagaimana Anda akan mencetak ke layar? Di F#, ada tiga fungsi berbeda yang dapat Anda gunakan. Mereka printf, printfn, dan bahkan Console.WriteLine. Jadi apa perbedaannya?

  • printf: Ini mencetak ke stdout sebaris (tanpa karakter baris baru).
  • printfn: Cetakan ke stdout menambahkan karakter baris baru.
  • Console.WriteLine: Fungsi ini berasal dari namespace System dan berfungsi dalam semua bahasa .NET.

Sekarang Anda tahu perbedaannya, tetapi mana yang harus Anda gunakan? Nah, printf dan printfn dianggap lebih idiomatik dan lebih disukai dalam 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 posisional seperti String.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 perlu 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 siku, seperti:

    let firstNumber = 2000
    let secondNumber = 21
    printfn $"The year is: {firstNumber + secondNumber}"
    

    Nota

    Tidak ada pemeriksaan jenis menggunakan interpolasi, sehingga mungkin tampak mudah digunakan. Pastikan untuk menggabungkan hal-hal dengan benar.

  • Spesifikator: Anda juga dapat menggunakan spesifikator format sebagai bagian dari yang Anda coba cetak. Menggunakan penentu adalah cara yang paling umum digunakan untuk memformat dalam F#. Berikut adalah contohnya:

    let name = "Chris"
    printf "Hi %s" name
    // prints: Hi Chris
    

    Di sini Anda dapat melihat bagaimana %s formatter digunakan untuk mencampur string pertama dengan variabel name.

    Nota

    Saat Anda menggunakan pemformat seperti %s atau %i, pengkompilasi memeriksa jenis. Jika argumen posisi Anda bukan jenis yang telah Anda tentukan, argumen tersebut akan menampilkan kesalahan.

Spesifikasi format

Ada banyak penentu format. Berikut adalah beberapa yang mungkin Anda temui.

Penentu Deskripsi Contoh
%s Digunakan untuk string dan konten yang tidak diloloskan printf "Halo %s" name
%d, %i Diformat sebagai bilangan bulat desimal, ditandatangani jika jenis bilangan bulat dasar ditandatangani printf "Usia: %i" 65
%b Boolean true atau false printf "Pengaturan pada: %b" true

Ada informasi selengkapnya tentang pemformatan. Jika Anda ingin tahu tentang semua kemampuan, lihat pemformatan di dokumen F#.