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

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

在 Go 中,當您調用帶有 (nil) 參數的結構時,它是什么意思?

在 Go 中,當您調用帶有 (nil) 參數的結構時,它是什么意思?

Go
揚帆大魚 2022-08-24 20:33:41
我是圍棋新手。我有以下Go代碼(在Playground這里)。我很困惑,因為我不明白第17行發生了什么。使用 nil 參數調用它,就好像它是一個函數一樣,這意味著什么?函數名稱前面的 是什么?myStruct[]*我希望能夠直接比較,但它們屬于不同的類型。ab 1:     package main 2:  3:     import ( 4:         "fmt" 5:         "google.golang.org/protobuf/runtime/protoimpl" 6:     ) 7:  8:     type myStruct struct { 9:         e   protoimpl.MessageState10:     }11: 12:     func myFunc() (*myStruct) {13:         return new(myStruct)14:     }15: 16:     func main() {17:         a := []*myStruct(nil)18:         fmt.Println("a = ", a)19:         b := myFunc()20:         fmt.Println("b = ", b)21:     }輸出:a =  []b =  &{{{} [] [] <nil>}}
查看完整描述

2 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

這是一種類型轉換。 轉換為類型 ,指向 的指針切片。nil[]*myStructmyStruct



查看完整回答
反對 回復 2022-08-24
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

我不在乎這種語法,因為它只會引起混淆。您可以只使用,然后不必擔心必須進行任何轉換:var


package main

import "fmt"


type date struct { year int }


func main() {

   {

      d := []*date(nil)

      fmt.Println(d) // []

   }

   {

      var d []*date

      fmt.Println(d) // []

   }

}


查看完整回答
反對 回復 2022-08-24
  • 2 回答
  • 0 關注
  • 85 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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