Pergi - Variabel

Variabel tidak lain adalah nama yang diberikan ke area penyimpanan yang dapat dimanipulasi oleh program. Setiap variabel di Go memiliki tipe tertentu, yang menentukan ukuran dan tata letak memori variabel, rentang nilai yang dapat disimpan di dalam memori tersebut, dan rangkaian operasi yang dapat diterapkan ke variabel.

Nama variabel dapat terdiri dari huruf, angka, dan karakter garis bawah. Ini harus dimulai dengan huruf atau garis bawah. Huruf besar dan kecil berbeda karena Go peka huruf besar / kecil. Berdasarkan tipe dasar yang dijelaskan pada bab sebelumnya, akan ada tipe variabel dasar berikut -

Sr Tidak Jenis & Deskripsi
1

byte

Biasanya satu oktet (satu byte). Ini adalah tipe byte.

2

int

Ukuran bilangan bulat paling alami untuk mesin.

3

float32

Nilai floating point presisi tunggal.

Bahasa pemrograman Go juga memungkinkan untuk mendefinisikan berbagai jenis variabel lain seperti Enumeration, Pointer, Array, Structure, dan Union, yang akan kita bahas pada bab-bab selanjutnya. Dalam bab ini, kami hanya akan memfokuskan tipe variabel dasar.

Definisi Variabel di Go

Definisi variabel memberi tahu compiler di mana dan berapa banyak penyimpanan yang harus dibuat untuk variabel. Definisi variabel menentukan tipe data dan berisi daftar satu atau lebih variabel dari tipe itu sebagai berikut -

var variable_list optional_data_type;

Sini, optional_data_type adalah tipe data Go yang valid termasuk byte, int, float32, complex64, boolean atau objek yang ditentukan pengguna, dll., dan variable_listdapat terdiri dari satu atau lebih nama pengenal yang dipisahkan dengan koma. Beberapa pernyataan valid ditampilkan di sini -

var  i, j, k int;
var  c, ch byte;
var  f, salary float32;
d =  42;

Pernyataan “var i, j, k;”mendeklarasikan dan mendefinisikan variabel i, j dan k; yang menginstruksikan kompilator untuk membuat variabel bernama i, j, dan k dengan tipe int.

Variabel dapat diinisialisasi (diberi nilai awal) dalam deklarasi mereka. Jenis variabel secara otomatis dinilai oleh kompilator berdasarkan nilai yang diteruskan padanya. Penginisialisasi terdiri dari tanda sama dengan diikuti dengan ekspresi konstan sebagai berikut -

variable_name = value;

Sebagai contoh,

d = 3, f = 5;    // declaration of d and f. Here d and f are int

Untuk definisi tanpa penginisialisasi: variabel dengan durasi penyimpanan statis secara implisit diinisialisasi dengan nil (semua byte memiliki nilai 0); nilai awal dari semua variabel lainnya adalah nilai nol dari tipe datanya.

Deklarasi Tipe Statis di Go

Deklarasi variabel tipe statis memberikan jaminan kepada compiler bahwa ada satu variabel yang tersedia dengan tipe dan nama yang diberikan sehingga compiler dapat melanjutkan untuk kompilasi lebih lanjut tanpa memerlukan detail variabel yang lengkap. Deklarasi variabel memiliki arti hanya pada saat kompilasi, kompilator membutuhkan deklarasi variabel aktual pada saat menautkan program.

Contoh

Coba contoh berikut, di mana variabel telah dideklarasikan dengan tipe dan diinisialisasi di dalam fungsi utama -

package main

import "fmt"

func main() {
   var x float64
   x = 20.0
   fmt.Println(x)
   fmt.Printf("x is of type %T\n", x)
}

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

20
x is of type float64

Deklarasi Tipe Dinamis / Jenis Inferensi di Go

Deklarasi variabel tipe dinamis membutuhkan compiler untuk menafsirkan tipe variabel berdasarkan nilai yang diteruskan padanya. Kompilator tidak memerlukan variabel untuk memiliki tipe statis sebagai persyaratan yang diperlukan.

Contoh

Coba contoh berikut, di mana variabel telah dideklarasikan tanpa tipe apa pun. Perhatikan, dalam kasus tipe inferensi, kami menginisialisasi variabely dengan: = operator, sedangkan x diinisialisasi menggunakan = operator.

package main

import "fmt"

func main() {
   var x float64 = 20.0

   y := 42 
   fmt.Println(x)
   fmt.Println(y)
   fmt.Printf("x is of type %T\n", x)
   fmt.Printf("y is of type %T\n", y)	
}

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

20
42
x is of type float64
y is of type int

Deklarasi Variabel Campuran di Go

Variabel dari jenis yang berbeda dapat dideklarasikan sekaligus menggunakan jenis inferensi.

Contoh

package main

import "fmt"

func main() {
   var a, b, c = 3, 4, "foo"  
	
   fmt.Println(a)
   fmt.Println(b)
   fmt.Println(c)
   fmt.Printf("a is of type %T\n", a)
   fmt.Printf("b is of type %T\n", b)
   fmt.Printf("c is of type %T\n", c)
}

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

3
4
foo
a is of type int
b is of type int
c is of type string

Lvalues ​​dan rvalues ​​di Go

Ada dua jenis ekspresi di Go -

  • lvalue- Ekspresi yang merujuk ke lokasi memori disebut ekspresi "lvalue". Nilai l dapat muncul sebagai sisi kiri atau kanan tugas.

  • rvalue- Istilah rvalue mengacu pada nilai data yang disimpan di beberapa alamat di memori. Nilai r adalah ekspresi yang tidak dapat memiliki nilai yang ditetapkan padanya yang berarti nilai r dapat muncul di sisi kanan tetapi tidak di sisi kiri tugas.

Variabel adalah lvalues ​​dan mungkin muncul di sisi kiri tugas. Literal numerik adalah nilai r sehingga mungkin tidak ditetapkan dan tidak dapat muncul di sisi kiri.

Pernyataan berikut ini valid -

x = 20.0

Pernyataan berikut tidak valid. Ini akan menghasilkan kesalahan waktu kompilasi -

10 = 20