Go pemalar bahasa
Pemalar ialah pengecam nilai mudah yang tidak akan diubah suai semasa program sedang berjalan.
Jenis data dalam pemalar hanya boleh boolean, angka (integer, titik terapung dan nombor kompleks) dan rentetan.
Format definisi malar:
const identifier [type] = value
Anda boleh meninggalkan penentu jenis [jenis] kerana pengkompil boleh membuat kesimpulan jenis pembolehubah berdasarkan nilainya.
Takrif jenis eksplisit:
const b string = "abc"
Takrif jenis tersirat:
const b = "abc"
Berbilang pengisytiharan jenis yang sama boleh disingkatkan sebagai:
const c_name1, c_name2 = value1, value2
Contoh berikut menunjukkan penggunaan pemalar:
package main import "fmt" func main() { const LENGTH int = 10 const WIDTH int = 5 var area int const a, b, c = 1, false, "str" //多重赋值 area = LENGTH * WIDTH fmt.Printf("面积为 : %d", area) println() println(a, b, c) }
Hasil contoh di atas ialah:
面积为 : 50 1 false str
Pemalar juga boleh digunakan sebagai penghitungan:
const ( Unknown = 0 Female = 1 Male = 2 )
Nombor 0, 1, dan 2 masing-masing mewakili jantina, perempuan dan lelaki yang tidak diketahui.
Pemalar boleh digunakan untuk mengira nilai ungkapan menggunakan pemalar len(), cap(), tidak selamat.Sizeof(). Dalam ungkapan malar, fungsi mestilah fungsi terbina dalam, jika tidak, ia tidak akan menyusun:
package main import "unsafe" const ( a = "abc" b = len(a) c = unsafe.Sizeof(a) ) func main(){ println(a, b, c) }
Hasil daripada contoh di atas ialah:
abc 3 16
iota
iota, pemalar khas, Boleh dianggap sebagai pemalar yang boleh diubah suai oleh pengkompil.
Apabila setiap kata kunci const muncul, ia ditetapkan semula kepada 0, dan kemudian sebelum const seterusnya muncul, setiap kali iota muncul, nombor yang diwakilinya akan meningkat secara automatik sebanyak 1.iota boleh digunakan sebagai nilai penghitungan:
const ( a = iota b = iota c = iota )
Iota pertama bersamaan dengan 0. Apabila iota digunakan dalam baris baharu, nilainya akan Tambah secara automatik 1; jadi a=0, b=1, c=2 boleh dipendekkan seperti berikut:
const ( a = iota b c )
Penggunaan iota
package main import "fmt" func main() { const ( a = iota //0 b //1 c //2 d = "ha" //独立值,iota += 1 e //"ha" iota += 1 f = 100 //iota +=1 g //100 iota +=1 h = iota //7,恢复计数 i //8 ) fmt.Println(a,b,c,d,e,f,g,h,i) }
Hasil contoh di atas ialah:
0 1 2 ha ha 100 100 7 8
Mari kita lihat contoh iota yang menarik:
package main import "fmt" const ( i=1<<iota j=3<<iota k l ) func main() { fmt.Println("i=",i) fmt.Println("j=",j) fmt.Println("k=",k) fmt.Println("l=",l) }
Hasil daripada contoh di atas ialah:
i= 1 j= 6 k= 12 l= 24
iota bermakna ia secara automatik meningkat sebanyak 1 bermula daripada 0, jadi i=1<< 0,j= 3<<1 (<< bermaksud anjakan kiri), iaitu: i=1, j=6 Ini bukan masalah 3<<2, l=3<<3.