Rumah > pembangunan bahagian belakang > Golang > Mengapa Saya Tidak Boleh Memulakan Pemalar Go dengan Panggilan Fungsi?

Mengapa Saya Tidak Boleh Memulakan Pemalar Go dengan Panggilan Fungsi?

Susan Sarandon
Lepaskan: 2024-12-15 02:15:10
asal
330 orang telah melayarinya

Why Can't I Initialize Go Constants with Function Calls?

Pemalar dalam Go: Mengisytiharkan Pembolehubah Malar dengan Permulaan

Dalam Go, pemalar memberikan nilai malar yang tidak boleh diubah semasa pelaksanaan program. Untuk mengisytiharkan pemalar, kata kunci const digunakan. Walau bagaimanapun, memulakan pemalar dengan panggilan fungsi adalah tidak dibenarkan.

Pertimbangkan contoh:

const KILO = math.Pow10(3)
Salin selepas log masuk

Ini akan mengakibatkan ralat: "const initializer math.Pow10(3) is not a constant ."

Mengapa Pemalar Tidak Boleh Dimulakan dengan Fungsi Panggilan

Pemalar dinilai pada masa penyusunan, manakala panggilan fungsi berlaku pada masa jalan. Oleh itu, adalah tidak mungkin untuk memulakan pemalar dengan panggilan fungsi, kerana hasil panggilan fungsi tidak diketahui sehingga masa jalan.

Pengecualian untuk Fungsi Terbina dalam

Sesetengah terbina -dalam fungsi, seperti tidak selamat.Sizeof(), boleh digunakan dalam pengisytiharan berterusan kerana ia boleh dinilai pada masa penyusunan. Walau bagaimanapun, kebanyakan panggilan fungsi tidak boleh digunakan dalam pengisytiharan malar.

Alternatif untuk Memulakan Pemalar

Untuk memulakan pemalar dengan nilai yang tidak boleh dinilai pada masa penyusunan, gunakan pembolehubah sebaliknya . Contohnya:

var KILO = math.Pow10(3)
Salin selepas log masuk

Dalam kes ini, pembolehubah KILO akan dimulakan dengan keputusan matematik.Pow10(3) panggilan pada masa jalan.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Memulakan Pemalar Go dengan Panggilan Fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan