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

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

未定義的變量 golang

未定義的變量 golang

Go
波斯汪 2023-03-21 17:28:03
有人能告訴我為什么 num 是未定義的嗎 :: 這是 go playground 鏈接你也可以在這里查看這段代碼: https: //play.golang.org/p/zR9tuVTJmx-package mainimport "fmt"func main() {    if 7%2 == 0 {        num := "first"    } else {        num := "second"    }    fmt.Println(num)  }
查看完整描述

1 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

那是與詞法作用域相關的東西,在這里查看介紹

基本上,花括號內的任何變量都{}被視為該塊內的新變量。

所以在上面的程序中你創建了兩個新變量。

塊類似于圍繞一個變量。

如果您在街區外,則看不到它。你需要在街區內才能看到它。

package main


import "fmt"


func main() {

    if 7%2 == 0 {

        // you are declaring a new variable,

        num := "first"

        //this variable is not visible beyond this point

    } else {

        //you are declaring a new variable,

        num := "second"

        //this variable is not visible beyond this point

    }

    // you are trying to access a variable, which is declared in someother block,

    // which is not valid, so undefined.

    fmt.Println(num)


}

你要找的是這個:


package main


import "fmt"


func main() {

    num := ""

    if 7%2 == 0 {

        //num is accessible in any other blocks below it

        num = "first"

    } else {

        num = "second"

    }

    //num is accessible here as well, because we are within the main block

    fmt.Println(num)

}


查看完整回答
反對 回復 2023-03-21
  • 1 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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