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

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

在同一行上聲明多個變量,并在 Go 中鍵入

在同一行上聲明多個變量,并在 Go 中鍵入

Go
一只甜甜圈 2022-10-04 19:41:46
我有以下代碼片段:package mainimport (    "bufio"    "fmt"    "os")func main() {    var reader *bufio.Reader = bufio.NewReader(os.Stdin)    fmt.Println("Enter your name")    name, err := reader.ReadString('\n') //THIS LINE    if err == nil {        fmt.Println("Hello " + name)    }}我的問題是,如果我想不使用語法(就像我在第一行所做的那樣),我該如何用類型重寫調用?:=main()ReadString()我嘗試了以下內容,但出現了相應的錯誤:var name string, err error = reader.ReadString('\n') -> syntax error: unexpected comma at end of statementvar name, err string, error = reader.ReadString('\n') -> syntax error: unexpected comma at end of statement從Go中的一行中有多個不同類型的變量(沒有簡短的變量聲明語法)中獲取提示,我也嘗試過,這也給出了相同的錯誤。var (name string, err error) = reader.ReadString('\n')對于上述鏈接問題,標記的答案只是建議對兩種不同的變量類型使用兩行。但是,對于像這樣的函數的返回值,這將如何工作?ReadString()
查看完整描述

1 回答

?
桃花長相依

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

首先


name, err := reader.ReadString('\n')`

完全沒問題。大多數IDE將顯示返回值的類型,如果您不知道它們。ReadString()


正如鏈接的答案詳細信息所示,變量聲明最多可以有一個可選類型,因此無法指定 2 個類型。


如果這些類型不可見而困擾您,這意味著可讀性對您來說更為重要。如果是這樣,那就打破“一句話贏”的哲學。


如果希望類型在源代碼中可見,請在前面聲明類型,然后使用賦值:


var (

    name string

    err  error

)

name, err = reader.ReadString('\n')

如果你仍然需要一個襯里(只是為了好玩),它需要一個助手功能。幫助程序函數的名稱可以“聲明”預期的類型:


func stringAndError(s string, err error) (string, error) {

    return s, err

}

然后,您可以使用變量聲明或短變量聲明:


var name, err = stringAndError(reader.ReadString('\n'))

// OR

name, err := stringAndError(reader.ReadString('\n'))


查看完整回答
反對 回復 2022-10-04
  • 1 回答
  • 0 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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