第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

接口包含類型約束:不能在轉(zhuǎn)換中使用接口

接口包含類型約束:不能在轉(zhuǎn)換中使用接口

Go
四季花海 2022-11-08 15:16:33
type Number interface {    int | int64 | float64}type NNumber interface {}//interface contains type constraints//type NumberSlice []Numbertype NNumberSlice []NNumberfunc main() {    var b interface{}    b = interface{}(1)    fmt.Println(b)    // interface contains type constraints    // cannot use interface Number in conversion (contains specific type constraints or is comparable)    //a := []Number{Number(1), Number(2), Number(3), Number(4)}    //fmt.Println(a)    aa := []interface{}{interface{}(1), interface{}(2), interface{}(3), 4}    fmt.Println(aa)    aaa := []NNumber{NNumber(1), NNumber(2), NNumber(3), 4}    fmt.Println(aaa)}為什么Number切片a不能這樣初始化?NumberSlice和NNumberSlice看起來相似,但是什么是類型約束,看起來語法很奇怪
查看完整描述

1 回答

?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊

語言規(guī)范明確禁止使用帶有類型元素的接口作為類型參數(shù)約束以外的任何東西(引號(hào)在Interface types段落下):

非基本接口只能用作類型約束,或用作其他接口的元素用作約束。它們不能是值或變量的類型,也不能是其他非接口類型的組件。

嵌入的接口comparable或其他非基本接口也是非基本接口。您的Number界面包含一個(gè)聯(lián)合,因此它也是非基本的。

幾個(gè)例子:

// basic: only methods

type A1 interface {

    GetName() string

}


// basic: only methods and/or embeds basic interface

type B1 interface {

    A1

    SetValue(v int)

}


// non-basic: embeds comparable

type Message interface {

    comparable

    Content() string

}


// non-basic: has a type element (union)

type Number interface {

    int | int64 | float64

}


// non-basic: embeds a non-basic interface

type SpecialNumber interface {

    Number

    IsSpecial() bool

}

在變量的初始化中a,你試圖Number在類型轉(zhuǎn)換中使用Number(1),這是不允許的。


您只能Number用作類型參數(shù)約束,即限制允許實(shí)例化泛型類型或函數(shù)的類型。例如:


type Coordinates[T Number] struct {

    x, y T

}


func sum[T Number](a, b T) T {

    return a + b

}


查看完整回答
反對(duì) 回復(fù) 2022-11-08
  • 1 回答
  • 0 關(guān)注
  • 247 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)