iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 9
0
自我挑戰組

Go to 放棄系列 第 9

go note4=>宣告

永久開機時,GOPATH就是自己的設定

vim ~/.bashrc

修改
export GOPATH=$HOME/.go => export GOPATH={指定的資料夾路徑}

宣告變數

1

package main

import (
	"fmt"
)

var 我是字串 string
var 我是數字 int

func main() {
	我是字串 = "Hey"
	我是數字 = 99
	fmt.Println(我是字串)
	fmt.Println(我是數字)
	fmt.Println("Complete")
}

2

package main

import (
	"fmt"
)

var (
	我是字串 string
	我是數字 int
)

func main() {
	我是字串 = "Hey"
	我是數字 = 99
	fmt.Println(我是字串)
	fmt.Println(我是數字)
	fmt.Println("Complete")
}

3

package main

import (
	"fmt"
)

var (
	我是字串 string = "Hey"
	我是數字 int    = 99
)

func main() {
	fmt.Println(我是字串)
	fmt.Println(我是數字)
	fmt.Println("Complete")
}

4
in local useful(要在function內命名)

package main

import (
	"fmt"
)

func main() {
	我是字串 := "Hey"
	我是數字 := 99
	fmt.Println(我是字串)
	fmt.Println(我是數字)
	fmt.Println("Complete")
}
var 我是字串 string
我是字串 = "Hey"

5.常數

package main

import (
	"fmt"
)

const (
	firstDay  = 1
	secondDay = 2
	thirdDay  = 3
)

func main() {
	fmt.Println(firstDay)
	fmt.Println(secondDay)
	fmt.Println(thirdDay)

	fmt.Println("Complete")
}

使用iota(預設為0)

package main

import (
	"fmt"
)

const (
	firstDay = iota + 1
	secondDay
	thirdDay
)

func main() {
	fmt.Println(firstDay)
	fmt.Println(secondDay)
	fmt.Println(thirdDay)

	fmt.Println("Complete")
}

從討論中記錄到的小提醒

盡可能不要寫 global variable
原因是你不知道在哪個 func 內會修改過他,未來專案一大比較難 debug,另外一點是不管是不是在 func 內,在 for 迴圈,或者是在 if 內都算是 local variable,離開迴圈或 if 之後,該 variable 就會被釋放了。

參考
如果在 if block 內的變數只會在 if 內用到,這時候你就需要在 if 內使用 i := 2 ,如果不是的話,像是計算金額,可能會需要跨很多 if 或 func 這時候就需要外層的 var 宣告,就是根據你的情境使用變數。

當你在 if 內使用 := 宣告變數,就不會影響到外面的變數,即使變數名稱都一樣也沒問題


上一篇
go note3-> import
下一篇
go note 5 =>回傳
系列文
Go to 放棄30

尚未有邦友留言

立即登入留言