我已经看到了一些类似的问题两种不同的类型如何使用接口在golang中实现相同的方法?,但就我而言,我的类型没有相同的基本类型。我的类型是不同大小的数组。
type Ten [10]byte type Twenty [20]byte func (t *Ten) GetByte0() byte { return t[0] } func (t *Twenty) GetByte0() byte { return t[0] }
因此,可能不重复两种方法GetByte0()?
例如,
package main import "fmt" type Ten [10]byte type Twenty [20]byte type Number []byte func (n Number) GetByte(i int) byte { return n[i] } func main() { t10 := Ten{10} fmt.Println(t10) n10 := Number(t10[:]) fmt.Println(n10.GetByte(0)) t20 := Twenty{10, 20} fmt.Println(t20) fmt.Println(Number(t20[:]).GetByte(1)) }
输出:
[10 0 0 0 0 0 0 0 0 0] 10 [10 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 20