Operasi aritmetik yang melibatkan pemalar dalam Go boleh menjadi aspek bahasa yang membingungkan. Walaupun nilai yang kelihatan besar bagi sesetengah pemalar, ia tidak berada dalam ingatan semasa runtime. Pemalar ini, yang dirujuk sebagai "pemalar ketepatan arbitrari yang tidak ditaip", wujud semata-mata semasa penyusunan.
Pemalar tidak disimpan secara fizikal dalam perduaan boleh laku. Sebaliknya, panggilan fungsi direkodkan yang beroperasi pada nilai jenis ketepatan terhingga. Jenis ini ditentukan oleh:
Untuk contoh:
const Huge = 1e1000 fmt.Println(Huge / 1e999) // Prints 10.0
Dalam kod ini, Huge mempunyai jenis lalai float64, dan hasil pembahagian juga ialah float64. Akibatnya, boleh laku tidak mengandungi 1e1000 mahupun 1e999, tetapi hanya nilai 10.0 jenis float64.
Walaupun tiada ketepatan sewenang-wenang sebenar pada masa jalanan, pengkompil Go mesti mengendalikan pemalar ini pada masa penyusunan. Spesifikasi bahasa membolehkan pengkompil fleksibiliti dalam mewakili pemalar, tetapi memastikan bahawa:
Walaupun spesifikasi Go tidak menyatakan butiran pelaksanaan operasi aritmetik pada pemalar, perpustakaan standard menyediakan pakej untuk bekerja dengan nilai ketepatan arbitrari:
Pakej ini melaksanakan aritmetik ketepatan arbitrari dengan menggunakan integer besar dan nombor rasional, membolehkan operasi tepat pada nilai yang melebihi had ketepatan jenis terbina.
Atas ialah kandungan terperinci Bagaimanakah Go Mengendalikan Operasi Aritmetik dengan Pemalar Tidak Ditaip?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!