一篇文章帶你了解Go語言基礎之變量
前言
Hey,大家好呀,我是星期八,這次咱們繼續(xù)學習Go基礎之變量叭。
為什么需要變量
簡單點說,我們寫的程序默認數(shù)據(jù)都是保存在內(nèi)存條中的,我們不可能直接通過地址找到這個變量,因為地址太長了,而且不容易記。
通常我們是通過變量名找到對應的地址上面的值,再進行一系列操作。
變量類型
現(xiàn)在不管是什么語言,常用的變量分為以下類型。
- 整數(shù),1,6,2,8,4...
- 浮點數(shù),1.1,5.7767,23.99...
- 布爾型,真,假
- 字符串類型,"張三","李四"...
- List
- Map
大概會分為以上幾種類型,不過這個不用記,了解就好。
變量定義
聲明變量
格式如下。
- var 變量名 變量類型
- 例如:
- var age int
- var gender bool
批量聲明
上面聲明變量是一個一個聲明的,如果需要一次性聲明一些變量,可以這樣寫。
- var (
- age int
- gender bool
- name string
- id int
- height int
- ...
- )
聲明時賦值
上述方式,只是聲明了變量,但是并沒有賦值,在后期需要時可以在賦值。
如果在聲明時,就確定值是什么,可以直接賦值。
格式如下。
- var 變量名 類型 = 值
- 例如:
- var age int = 18
- var name string = "張三"
在Go中的一個強制要求
在Go中,變量必須使用,至少需要fmt.Println(變量)。
- var 變量名 類型 = 值
- 例如:
- var age int = 18
- var name string = "張三"
類型推導方式聲明變量賦值
在上述聲明變量并且賦值時,還需要指定變量類型。
在Go,Go具有類型推導方式聲明時賦值變量。
- var age = 18
- var name = "張三"
其實就是變量名后面不用寫變量類型了。
:=方式變量賦值
在Go,還有一種更簡單的方式聲明變量賦值。
格式如下。
- age := 18
- name := "張三"
學過Python的可能有點開心了,除了多個一個:號,其他基本和Pyton定義變量方式一樣。
注意:
- age := 18 //本質(zhì)是執(zhí)行的兩句話
- //同上
- var age int
- age = 18
全局變量
簡單說就是,在最外面的定義的變量就是全局變量。
在Go中,全局變量是有要求的。
- package main
- //全局變量:
- // 方式一,聲明全局變量,必須跟類型
- //var age int
- //方式二,聲明變量且賦值,類型可以不用寫
- //var age = 18
- //var age int = 18
- //方式三,錯誤示例,全局變量要么只聲明變量,要么聲明就賦值
- //var age int
- //age =18
- //方式四,錯誤示例,:=方式聲明賦值
- // 方式四其實就等于方式三的寫法,所以不能用在全局變量中
- //age := 18
- func main() {
- }
PS:全局變量要么只聲明,要么聲明時就賦值,不能寫兩行賦值,所以:=方式不能應用在全局變量中
匿名變量
匿名變量多用于函數(shù)返回值場景中,比如函數(shù)返回了倆值,倆值要第一個值,就可以使用匿名變量。
因為Go中,變量必須使用,如果某個變量需要忽略,使用_即可。
值得注意的是,匿名變量不會占用內(nèi)存。
- package main
- func get_info() (string, int) {
- return "張三", 18
- }
- func main() {
- //標準寫法
- //name, age := get_info()
- //fmt.Println(name, age)
- //匿名變量方式
- //name, _ := get_info()
- //fmt.Println(name)
- //_,age := get_info()
- //fmt.Println(age)
- }
常量
其實常量和變量基本一樣,但是常量是不能修改的。
通常常量以大寫定義。
- package main
- import "fmt"
- func main() {
- //單個聲明
- const PI1 int = 3
- const PI2 = 3.14
- //同時聲明多個
- const (
- PI3 = 3.14
- PI4 = 3.14
- )
- //同上聲明多個變量時,如果省略了值表示和上一行相同
- const (
- girl1 = 18
- girl2 // 18,和上一行相同
- girl3 // 18,和上一行相同
- girl4 = 17
- girl5 // 17,和上一行相同
- )
- fmt.Println(girl3, girl5)
- }
注:常量聲明時就必須賦值
錯誤示例。
- package main
- func main() {
- const age int
- age = 18
- //error
- }
總結
上述我們學習了Go基礎之變量。
如果在操作過程中有任務問題,記得下面留言,我們看到會第一時間解決問題。
我是碼農(nóng)星期八,如果覺得還不錯,記得動手點贊一下哈。感謝你的觀看。
本文轉(zhuǎn)載自微信公眾號「Go語言進階學習」,可以通過以下二維碼關注。轉(zhuǎn)載本文請聯(lián)系Go語言進階學習公眾號。