2 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
我希望有效地?fù)碛幸恍┰谒蟹矫娑急憩F(xiàn)為 int 的東西,但有額外的方法。我希望能夠通過某種方式用它來代替 int。
目前在 Go 中這是不可能的,因?yàn)樗恢С秩魏晤愋偷姆盒汀?/p>
您可以實(shí)現(xiàn)的最佳效果如下:
package main
type Integer int
func (i Integer) Add(x Integer) Integer {
return Integer(int(i) + int(x))
}
func AddInt(x, y int) int {
return x + y
}
func main() {
x := Integer(1)
y := Integer(2)
z := 3
x.Add(y)
x.Add(Integer(z))
x.Add(Integer(9))
# But this will not compile
x.Add(3)
# You can convert back to int
AddInt(int(x), int(y))
}

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以基于 int 聲明一個(gè)新類型,并使用它:
type newint int
func (n newint) f() {}
func intFunc(i int) {}
func main() {
var i, j newint
i = 1
j = 2
a := i+j // a is of type newint
i.f()
intFunc(int(i)) // You have to convert to int
}
- 2 回答
- 0 關(guān)注
- 141 瀏覽
添加回答
舉報(bào)