在嘗試確定常數的位址時,您可能會遇到類似「無法取得常數的位址。」發生這種情況是因為Go 對位址運算子施加了限制,禁止使用常數作為其運算元。
Go 規格規定可尋址實體包括變數、指標間接、切片索引運算、可尋址結構體的欄位選取器、陣列可尋址陣列和複合文字的索引運算。然而,此列表中明顯缺少常數。
此限制源自於兩個基本原因:
要規避此限制,您可以將常數值指派給可尋址變數並取得該變數的位址。例如:
package main func main() { const k = 5 v := k address := &v // This approach is allowed }
但是,考慮到 Go 中的數字常數具有任意精確度,這意味著它們可以超過特定類型可表示的最大值。將常數分配給變數可能會導致精確度損失,尤其是在浮點常數的情況下。
以上是為什麼在 Go 中無法取得常數的位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!