iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0

前言

既然上一站大致分享了 var:= 的變數宣告方式,那這一站就來跟大家分享其他有用的變數知識 ! !

變數介紹

其他的變數宣告方式

上一站有跟大家說過,var:=,它們兩之間還有一個差異就是一個可以寫在函式的外部,這又是什麼意思呢? 我馬上展示給你看

//這是寫在函式內部的 var

package main
import ("fmt")


func main() {
  var a string
  var b int = 2
  var c = 3
  a = "Jack"
  fmt.Println(a)
  fmt.Println(b)
  fmt.Println(c)
}

輸出結果
https://ithelp.ithome.com.tw/upload/images/20230921/20161224kw3JLExHFM.png
這就是很平常的出輸出結果

//這是寫在函式外部的 var

package main
import ("fmt")

var a string
var b int = 2
var c = 3

func main() {
  a = "Jack"
  fmt.Println(a)
  fmt.Println(b)
  fmt.Println(c)
}

輸出結果
https://ithelp.ithome.com.tw/upload/images/20230921/20161224zMC0HM8P3N.png
可以很明顯的看到我的 var 值是宣告在func main()的外面,這就是可以宣告在函式外部的 var 魅力之一,為了證明我不是用同一個截圖,我的結果跑程式碼的時間都不一樣!!!!如果還不相信的話,你也可以自行跑跑看 :+1:

那如果是 := 的話呢?

也有人會發問,既然 var 可以寫在函式外面的話,那我是不是也可以用 := 來實現這個結果? 那我就直接呈現結果給大家看 !

package main
import ("fmt")

a := 5

func main() {
  fmt.Println(a)
}

輸出結果呢?顯然是這樣
https://ithelp.ithome.com.tw/upload/images/20230921/20161224Nga29nuWrM.png
顯示了語法錯誤,所以請大家要特別注意~

如果沒有設值的話,居然還有預設值!!!!

package main
import ("fmt")

func main() {
  var a int
  var b string
  var c bool
  var d float64

  fmt.Println(a)
  fmt.Println(b)
  fmt.Println(c)
  fmt.Println(d)
}

輸出結果
https://ithelp.ithome.com.tw/upload/images/20230921/20161224XgJTR6FyP8.png
你會驚訝怎麼沒有輸入值,但是他還是會跑值出來,那是因為他有默認值,像是 int 的默認值為 0,而string的默認值為 " "所以才會是空白的,至於bool的默認值為 false,最後float64的默認值為 0

其他宣告方式

那當然除了 var 可以寫在函式外面,其實還有很多種宣告方式

//一次把宣告變數跟值都打完
package main
import ("fmt")

func main() {
  var a, b = 6, "Hello"
  c, d := 7, "World!"

  fmt.Println(a)
  fmt.Println(b)
  fmt.Println(c)
  fmt.Println(d)
}
//把 var 利用括號把自己宣告的所有變數框成一塊
package main
import ("fmt")

func main() {
   var (
     a int
     b int = 1
     c string = "hello"
   )

  fmt.Println(a)
  fmt.Println(b)
  fmt.Println(c)
}

結語&預告

以上這些都是關於 Go 語法中的 var 宣告變數的其他種方式,當然每個方式都有它的優點及缺點,就看你要如何去使用它 !!!
那下一站我們要跟大家分享有關於 float 的知識 !!!

下一站~ 第十一站 : float的奇妙冒險


上一篇
Day10-[第九站 : Go 的變數宣告(一)]<GOO~
下一篇
Day12-第十一站 : Go float的奇妙冒險
系列文
關於我轉生變成 Go 初學者的這檔事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言