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 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

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 ke stdout sebaris (tidak ada karakter baris baru).
  • printfn: Ini mencetak ke stdout menambahkan karakter baris baru.
  • Console.WriteLine: Fungsi ini berasal dari namespace layanan System 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 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 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 variabel name.

    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#.