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

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

如何在Go中的單個語句中聲明不同數據類型的變量

如何在Go中的單個語句中聲明不同數據類型的變量

Go
FFIVE 2022-10-17 09:56:39
我想在 Go 中的單個語句中聲明兩個不同數據類型的變量(string和)。error我不想使用短聲明(:=)運算符,因為我喜歡在聲明時指定變量的類型。我正在關注Go docs 中的 Go 教程。我有一個greetings.Hello()從另一個模塊調用的函數。該greetings.Hello()函數如下所示:package greetingsimport (    "errors"    "fmt")func Hello(name string) (string, error) {    // If no name was given, return an error with a message    if name == "" {        return "", errors.New("empty name")    }    // If a name was received, return a value    var message string = fmt.Sprintf("Welcome %v!", name)    return message, nil}如您所見,此函數返回兩個值(astring和 an error)。所以最終,我必須將此函數的結果分配給調用者中的兩個變量。我greetings.Hello()從一個名為hello. 模塊主包的主函數hello如下所示:package mainimport (    "fmt"    "log"    "creating_modules/greetings")func main() {    log.SetPrefix("greetings: ")    log.SetFlags(0)    var message string, err error = greetings.Hello("")    if err !=nil {        log.Fatal(err)    }    fmt.Println(message)}creating_modules/greetings是包含函數的問候模塊Hello()。大多數地鼠都是這樣處理的:message, error := greetings.Hello()但我想在一條語句中聲明變量及其數據類型。這兩個變量也應該被賦予返回值greetings.Hello()。上面提到的hello模塊的main函數因為賦值不正確,在運行的時候會報錯,參考這一行:var message string, err error = greetings.Hello("")當使用以下代碼運行此代碼時,Go 編譯器會返回此錯誤go run:.\hello.go:14:20: syntax error: unexpected comma at end of statement可以通過復制粘貼上面的代碼來簡單地重現此問題(注意該greetings模塊是本地模塊,因此您需要使用 設置 go 工具的引用路徑go edit -replace)需要注意的另一件事是,我的問題與這個問題不同,因為該問題是關于在單個語句中聲明具有相同數據類型的變量,而我的問題是關于在單個語句中聲明具有不同數據類型的多個變量。PS 知道 Golang 沒有這個功能我不會感到驚訝
查看完整描述

1 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

在單個語句中聲明變量及其數據類型

不可能

變量聲明下語言規范中的支持子句

如果存在類型,則為每個變量賦予該類型。否則,每個變量都被賦予賦值中對應的初始化值的類型。如果該值是無類型常量,則首先將其隱式轉換為其默認類型;

所以像下面這樣的東西可以通過不指定任何一種類型來工作,但是你可以很好地使用短變量聲明來:=代替

var message, error = greetings.Hello()

但是您可以使用它們的類型信息顯式聲明變量并使用=賦值。

var message string

var err error


if message, err = greetings.Hello(""); err != nil {

    log.Fatal(err)

}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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