一篇文章帶你瞭解 Go 語言基礎之變量

前言

Hey,大家好呀,我是星期八,這次咱們繼續學習 Go 基礎之變量叭。

爲什麼需要變量

簡單點說,我們寫的程序默認數據都是保存在內存條中的,我們不可能直接通過地址找到這個變量,因爲地址太長了,而且不容易記。

通常我們是通過變量名找到對應的地址上面的,再進行一系列操作。

變量類型

現在不管是什麼語言,常用的變量分爲以下類型。

大概會分爲以上幾種類型,不過這個不用記,瞭解就好。

變量定義

聲明變量

格式如下。

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(變量)

類型推導方式聲明變量賦值

在上述聲明變量並且賦值時,還需要指定變量類型。

在 Go,Go 具有類型推導方式聲明時賦值變量。

var age = 18
var name = "張三"

其實就是變量名後面不用寫變量類型了。

:= 方式變量賦值

在 Go,還有一種更簡單的方式聲明變量賦值。

格式如下。

age := 18
name := "張三"

學過 Python 的可能有點開心了,除了多個一個:號,其他基本和 Pyton 定義變量方式一樣。

注意:

age := 18 //本質是執行的兩句話
//同上
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: 全局變量要麼只聲明,要麼聲明時就賦值,不能寫兩行賦值,所以:= 方式不能應用在全局變量中

匿名變量

匿名變量多用於函數返回值場景中,比如函數返回了倆值,倆值要第一個值,就可以使用匿名變量。

因爲 Go 中,變量必須使用,如果某個變量需要忽略,使用_即可。

值得注意的是,匿名變量不會佔用內存。

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 基礎之變量。

如果在操作過程中有任務問題,記得下面留言,我們看到會第一時間解決問題。

我是碼農星期八,如果覺得還不錯,記得動手點贊一下哈。感謝你的觀看。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/HIcwEHwHimhpNy_VQ9NtYA