我刚接触Go,当时正在研究接口及其实现。
我遇到的所有示例都使用struct{}
来实现任何接口。
可以使用任何基本类型吗?
答案 0 :(得分:4)
The Go Programming Language Specification
方法是具有接收器的函数。方法声明绑定了 标识符,方法名称,方法,并将该方法关联 带有接收者的基本类型。
接收器是通过在 方法名称。该参数部分必须声明一个非变量 参数,接收者。其类型必须为T或* T (可能使用括号),其中T是类型名称。表示的类型 用T表示的是接收方基本类型;它不能是指针或 接口类型,它必须与 方法。据说该方法绑定到基本类型和方法 名称仅在类型T或* T的选择器中可见。
不。它可以是指针或接口类型以外的任何其他类型。
例如,使用string
作为基础类型,
package main
import (
"fmt"
"strings"
)
type Caser interface {
Upper() string
Lower() string
}
type Str string
func (s Str) Upper() string {
return strings.ToUpper(string(s))
}
func (s Str) Lower() string {
return strings.ToLower(string(s))
}
func main() {
str := Str("Forty-Two")
fmt.Println(str)
up := str.Upper()
fmt.Println(up)
lo := str.Lower()
fmt.Println(lo)
}
游乐场:https://play.golang.org/p/9RDRTftqWot
输出:
Forty-Two
FORTY-TWO
forty-two