Pemalar dalam Go menawarkan sifat yang luar biasa, termasuk keupayaan untuk melakukan operasi aritmetik pada nilai yang sangat besar tanpa kebimbangan ketepatan. Walaupun keputusan akhirnya mesti sesuai dalam had memori, mekanisme di sebalik fungsi ini menarik. Artikel ini membincangkan cara Go mengendalikan storan dan aritmetik berterusan.
Malar tidak wujud semasa masa jalan; peranan mereka terhad kepada masa penyusunan. Oleh itu, Go tidak memerlukan perwakilan tetap ketepatan sewenang-wenangnya semasa pelaksanaan. Apabila menyusun kod, tingkah laku adalah berbeza:
const Huge = 1e1000
Dalam contoh ini, "Huge" wujud dalam kod sumber tetapi tidak dalam kod yang disusun boleh dilaksanakan. Sebaliknya, panggilan fungsi ke "fmt.Println()" direkodkan dengan nilai jenis float64. Boleh laku tidak mengandungi kesan "1e1000."
Menurut spesifikasi Go, pemalar berangka mempunyai ketepatan arbitrari, tetapi penyusun mempunyai kebebasan pelaksanaan. Namun begitu, keperluan ketepatan minimum disediakan:
Go memastikan penilaian berterusan yang tepat dengan pengendalian ralat apabila had perwakilan adalah melebihi.
Walaupun tuntutan ketepatan sewenang-wenangnya spesifikasi, pelaksanaan sebenar mungkin tidak sentiasa mematuhi. Walau bagaimanapun, perpustakaan standard menyediakan pakej "go/constant" untuk mewakili dan memanipulasi nilai dengan ketepatan sewenang-wenangnya.
Pada masa penyusunan, operasi berterusan dilakukan dengan ketepatan sewenang-wenangnya, tetapi keputusan mesti ditukar kepada jenis terhingga sebelum dimasukkan dalam boleh laku. Jika penukaran ini mustahil, ralat masa kompilasi berlaku.
Pakej "go/constant" bergantung pada pakej "matematik/besar" untuk ketepatan sewenang-wenangnya. "matematik/besar" menyimpan nombor besar sebagai digit dalam sekeping, di mana setiap digit mewakili nilai dalam julat berangka yang luas.
Pemalar dalam Go memberikan muka depan ketepatan sewenang-wenang semasa penyusunan . Secara dalaman, penyusun memastikan pematuhan dengan keperluan ketepatan minimum. Walaupun kod boleh laku beroperasi pada jenis ketepatan terhingga, operasi berterusan dijalankan dengan ketepatan sewenang-wenangnya. Pakej "go/constant" membolehkan pembangun mengendalikan nilai dengan ketepatan arbitrari pada peringkat bahasa, meningkatkan fleksibiliti dan membantu dalam pengiraan matematik.
Atas ialah kandungan terperinci Bagaimanakah Go Mengendalikan Operasi Aritmetik pada Pemalar Besar pada Masa Penyusun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!