我在任何地方都找不到答案,所以情況是這樣的:// err has not yet been declared hereglobalVar := "string"if globalVar == "string" { globalVar, err := doSomethingWithString() if err != nil { // error handling }}第二個globalVar聲明:=在使用“=”時和“=”時都會出現(xiàn)錯誤:用:=它說globalVar declared and not used是因為現(xiàn)在 globalVar 是內部作用域中的一個新變量。用=它說undefined err是因為它還沒有被宣布。因此,基本上,應該有一種方法來定義之間的差別=和:=有關聲明的左側每個變量。我看到了兩種可能的解決方案,在我看來它們都同樣丑陋:// err has not yet been declared hereglobalVar := "string"if globalVar == "string" { globalVar2, err := doSomethingWithString() if err != nil { // error handling } globalVar = globalVar2}或者globalVar := "string"var err errorif globalVar == "string" { globalVar, err = doSomethingWithString() if err != nil { // error handling }}我是否必須使用這些變通方法之一,或者是否有正確的方法來實現(xiàn)我所需要的?第二種解決方案看起來最不丑,但是如果有很多變量只需要在 if 作用域中,那么這些變量在作用域之后不會被刪除,并且會持久化整個外部作用域。所以在我看來,第一個解決方案似乎是最好的。但我想聽聽其他人如何解決這種情況...
- 1 回答
- 0 關注
- 208 瀏覽
添加回答
舉報
0/150
提交
取消