为了账号安全,请及时绑定邮箱和手机立即绑定

接口是否仅由 Go 中的结构数据类型实现?

接口是否仅由 Go 中的结构数据类型实现?

Go
慕姐4208626 2023-05-22 15:58:48
我是 Go 的新手,正在研究接口及其实现。我遇到的所有示例都用于struct{}实现任何接口。是否可以使用任何基本类型?
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

Go 编程语言规范

方法声明

方法是具有接收者的函数。方法声明将标识符、方法名称绑定到方法,并将该方法与接收者的基类型相关联。

接收器是通过方法名称之前的额外参数部分指定的。该参数部分必须声明一个非可变参数,即接收器。它的类型必须是 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


查看完整回答
反对 回复 2023-05-22
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信