Dalam bahasa Go, kata kunci const boleh digunakan untuk menentukan pemalar, yang digunakan untuk menyimpan data yang tidak akan berubah Sintaks untuk mentakrifkan pemalar tunggal ialah "nama pemalar const = nilai pemalar", dan sintaks untuk mentakrifkan berbilang pemalar dalam kelompok ialah "const (nama pemalar 1 = nilai pemalar 1 Nama pemalar 2 = nilai pemalar 2...)". Pemalar dicipta pada masa penyusunan, walaupun ditakrifkan di dalam fungsi, dan hanya boleh terdiri daripada jenis boolean, nombor (integer, titik terapung dan nombor kompleks) dan rentetan.
Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.
Kata kunci const digunakan untuk menentukan pemalar dalam bahasa Go.
Pemalar digunakan untuk menyimpan data yang tidak akan berubah Pemalar dibuat pada masa penyusunan, walaupun ia ditakrifkan di dalam fungsi, dan hanya boleh menjadi jenis titik Boolean (integer, terapung). dan jenis jamak) dan jenis rentetan. Disebabkan oleh sekatan masa kompilasi, ungkapan yang mentakrifkan pemalar mestilah ungkapan malar yang boleh dinilai oleh pengkompil.
Format definisi pemalar adalah serupa dengan sintaks pengisytiharan pembolehubah: const name [type] = value, contohnya:
const pi = 3.14159 // 相当于 math.Pi 的近似值
Dalam bahasa Go, anda boleh meninggalkan penentu jenis [type] , kerana pengkompil boleh membuat kesimpulan jenis pembolehubah berdasarkan nilainya.
Takrif jenis eksplisit: const b string = "abc"
Takrif jenis tersirat: const b = "abc"
Nilai pemalar mesti boleh ditentukan pada masa penyusunan, dan proses pengiraan boleh terlibat dalam ungkapan tugasannya, tetapi semua nilai yang digunakan untuk pengiraan mesti tersedia pada masa penyusunan.
Pendekatan yang betul:
const c1 = 2/3
Pendekatan salah:
const c2 = getNumber() // 引发构建错误: getNumber() 用做值
Seperti pengisytiharan pembolehubah, berbilang pemalar boleh diisytiharkan dalam kelompok:
const ( e = 2.7182818 pi = 3.1415926 )
Semua operasi berterusan boleh diselesaikan pada masa penyusunan, yang bukan sahaja mengurangkan kerja masa jalan, tetapi juga memudahkan pengoptimuman penyusunan Kod lain, apabila operan adalah pemalar, beberapa ralat masa jalan juga boleh ditemui pada masa penyusunan, seperti pembahagian integer dengan sifar, indeks rentetan di luar sempadan, sebarang operasi yang mengakibatkan nombor titik terapung tidak sah, dsb.
Hasil semua operasi aritmetik, operasi logik dan operasi perbandingan antara pemalar juga merupakan operasi penukaran jenis pada pemalar atau panggilan fungsi berikut mengembalikan hasil tetap: len, cap, real, imag, kompleks dan tidak selamat . Saiz.
Oleh kerana nilainya ditentukan pada masa penyusunan, pemalar boleh menjadi sebahagian daripada jenis, contohnya, digunakan untuk menentukan panjang jenis tatasusunan:
const IPv4Len = 4 // parseIPv4 解析一个 IPv4 地址 (d.d.d.d). func parseIPv4(s string) IP { var p [IPv4Len]byte // ... }
Pengisytiharan pemalar juga Boleh mengandungi jenis dan nilai, tetapi jika tiada jenis dinyatakan secara eksplisit, jenis disimpulkan daripada ungkapan di sebelah kanan. Dalam kod berikut, masa.Tempoh ialah jenis yang dinamakan, jenis asas ialah int64 dan masa.Minit ialah pemalar jenis yang sepadan. Dua pemalar yang diisytiharkan di bawah adalah jenis masa. Tempoh, dan maklumat jenis boleh dicetak melalui parameter %T:
const noDelay time.Duration = 0 const timeout = 5 * time.Minute fmt.Printf("%T %[1]v\n", noDelay) // "time.Duration 0" fmt.Printf("%T %[1]v\n", timeout) // "time.Duration 5m0s" fmt.Printf("%T %[1]v\n", time.Minute) // "time.Duration 1m0s"
Jika ia adalah pemalar yang diisytiharkan dalam kelompok, ungkapan permulaan di sebelah kanan daripada pemalar lain kecuali yang pertama Ungkapan boleh diabaikan Jika ungkapan permulaan diabaikan, ini bermakna ungkapan permulaan pemalar sebelumnya digunakan, dan jenis pemalar yang sepadan juga sama. Contohnya:
const ( a = 1 b c = 2 d ) fmt.Println(a, b, c, d) // "1 1 2 2"
[Cadangan berkaitan: Pergi tutorial video, Pengajaran pengaturcaraan]
Atas ialah kandungan terperinci Cara menggunakan const dalam bahasa go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!