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
Susan Sarandonasal
2024-12-15 02:15:10333semak imbas

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)

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)

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!

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