亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

接口是否僅由 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 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號