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

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

type 關(guān)鍵字在 go 中(究竟)做了什么?

type 關(guān)鍵字在 go 中(究竟)做了什么?

Go
陪伴而非守候 2023-05-15 14:55:34
我一直在閱讀Go Tour of Go來學(xué)習(xí)Go-Lang,到目前為止進(jìn)展順利。我目前正在學(xué)習(xí)結(jié)構(gòu)字段課程,這是右側(cè)的示例代碼:package mainimport "fmt"type Vertex struct {  X int  Y int}func main() {  v := Vertex{1, 2}  v.X = 4  fmt.Println(v.X)}看一下第 3 行:type Vertex struct {我不明白的是,type關(guān)鍵字是做什么的,為什么會(huì)在那里?
查看完整描述

3 回答

?
慕哥6287543

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

關(guān)鍵字type用于創(chuàng)建新類型。這稱為類型定義。新類型(在您的例子中為 Vertex)將具有與基礎(chǔ)類型(具有 X 和 Y 的結(jié)構(gòu))相同的結(jié)構(gòu)。該行基本上是在說“基于 X int 和 Y int 的結(jié)構(gòu)創(chuàng)建一個(gè)名為 Vertex 的類型”。

不要混淆類型定義和類型別名。當(dāng)您聲明一個(gè)新類型時(shí),您不僅僅是給它一個(gè)新名稱——它將被視為一個(gè)獨(dú)特的類型。查看類型標(biāo)識(shí)以獲取有關(guān)該主題的更多信息。


查看完整回答
反對 回復(fù) 2023-05-15
?
幕布斯6054654

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

它用于定義新類型。

一般格式:
type <new_type> <existing_type or type_definition>

常見用例:

  • 為現(xiàn)有類型創(chuàng)建新類型。
    格式:
    type <new_type> <existing_type>

    type Seq []int

  • 在定義結(jié)構(gòu)時(shí)創(chuàng)建類型。
    格式:
    type <new_type> struct { /*...*/}

  • 定義函數(shù)類型,(也就是通過將名稱分配給函數(shù)簽名)。
    格式:
    type <FuncName> func(<param_type_list>) <return_type>

    type AdderFunc func(int, int) int

在你的情況下:

它定義了一個(gè)以新結(jié)構(gòu)命名的類型Vertex,以便稍后您可以通過 引用該結(jié)構(gòu)Vertex。


查看完整回答
反對 回復(fù) 2023-05-15
?
慕桂英3389331

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

實(shí)際上 type 關(guān)鍵字與 PHP 中的類拓?fù)湎嗤?/p>


使用 type 關(guān)鍵字就像在 GO 中創(chuàng)建類一樣


結(jié)構(gòu)中的示例類型


type Animal struct {

  name string //this is like property

}


func (An Animal) PrintAnimal() {

  fmt.Println(An.name) //print properties

}


func main() {

  animal_cow := Animal{ name: "Cow"} // like initiate object


  animal_cow.PrintAnimal() //access method

}

好的,讓我們移動(dòng)字符串類型(對于int或float是相同的)


   type Animal string

        

   // create method for class (type) animal

   func (An Animal) PrintAnimal() {

      fmt.Println(An) //print properties

   }

    

   func main(){

      animal_cow := Animal("Cow") // like initiate object

    

      animal_cow.PrintAnimal() //access method

      //Cow

   }

struct和string、int、float之間的區(qū)別僅在struct中您可以添加具有任何不同數(shù)據(jù)類型的更多屬性


在string、int、float中相反,您只能擁有 1 個(gè)屬性,這些屬性是在您啟動(dòng)類型時(shí)創(chuàng)建的(例如:animal_cow := Animal("Cow")


但是,所有使用 type 關(guān)鍵字構(gòu)建的類型都可以有不止一種方法


如果我錯(cuò)了請糾正我


查看完整回答
反對 回復(fù) 2023-05-15
  • 3 回答
  • 0 關(guān)注
  • 153 瀏覽

添加回答

舉報(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)