字面值無法取位址

2021-09-24 11:07:12 字數 399 閱讀 5209

type intset struct 

func (i *intset) string() string

func main() }

fmt.println(i.string())

fmt.println(intset}.string()) //出錯,字面值無法獲取位址

fmt.println((&intset}).string()) //取址後再呼叫string,通過

}

為指標接收器*intset實現了string方法,當*intset或者intset型別變數呼叫string方法時,都可以通過(go在內部對*intset和intset進行轉換)。但當使用字面值呼叫string方法時,會出錯。這是因為無法對字面值進行取址,go沒辦法進行轉換。

字面值型別

只有內建型別 內建型別是程式語言自己定義的一些型別 存在字面值,沒有類 class 型別字面值。例如 0是int型別的字面值,3.14159是double型別的字面值。1 整型浮點字面值20 decimal 十進位制 024octal 八進位制 0x14 hexadecimal 十六進製制 128u...

字面值型別

1 字面值常量 乙個形如42的值被稱作字面值常量,這樣的值一望而知。每個字面值常量都對應一種資料型別,字面值常量的形式和值決定了它的資料型別,包含 2 常量表示式 指值不會改變並且在編譯過程就能得到計算結果的表示式。很顯然,字面值屬於常量表示式,用常量表示式初始化的const物件也是常量表示式。乙個...

字面值常量

乙個形如 39 的值被稱作字面值常量 literal 每個字面值常量都對應一種資料型別,字面值常量的形式和值決定了它的資料型別。整型字面值寫作十進位制數 八進位制數或十六進製制數的形式。以0開頭的整數代表八進位制數,以0x或0x開頭的代表十六進製制數。下面的任意一種形式都表示數值 20 20 十進位...