「Go」Go語言變量和常量

不積跬步,無以至千里;不積小流,無以成江海。

碼字不易,點贊再看。

變量和常量是編程中必不可少的部分。Go 語言是 靜態類型 語言,由於編譯時,編譯器會 檢查 變量的類型,所以要求所有的變量都要有 明確 的類型。

標識符與關鍵字

標識符

在編程語言中標識符就是程序員定義的具有特殊意義的詞,比如變量名、常量名、函數名等等。 Go語言中標識符由字母數字和_(下劃線)組成,並且 只能 以 字母 和 _ 開頭。 舉幾個例子:abc, _, _123, a123。

關鍵字

關鍵字是指編程語言中預先定義好的具有特殊含義的標識符。

關鍵字和保留字都不建議用作變量名。

Go語言中有25個關鍵字:

<code>    

break

default

func

interface

select

case

defer

go

map

struct

chan

else

goto

package

switch

const

fallthrough

if

range

type

continue

for

import

return

var

/<code>

此外,Go語言中還有37個保留字。

<code>Constants:    

true

false

iota

nil

Types:

int

int8

int16

int32

int64

uint

uint8

uint16

uint32

uint64

uintptr

float32

float64

complex128

complex64

bool

byte

rune

string

error Functions:

make

len

cap

new

append

copy

close

delete

complex

real

imag

panic

recover

/<code>
變量

Go語言中的變量需要先聲明後使用,並且Go語言的變量聲明後 必須 使用。同一 作用域內 不支持 重複聲明。 聲明瞭類型,就約定了變量只能賦該類型的值。

標準聲明

Go語言的變量聲明格式為:

var 變量名 變量類型

變量聲明以關鍵字 var 開頭,變量類型放在變量的後面,行尾 無需 分號。 舉個例子:

<code>

var

name

string

var

age

int

var

isOk

bool

/<code>
批量聲明

聲明多個變量,除了可以按照上面寫成多行之外,go語言中還支持批量變量聲明:

<code>

var

( name

string

age

int

sex ) /<code>
變量的初始化

Go語言在聲明變量的時候,會自動對變量對應的內存區域進行初始化操作。每個變量會被初始化成其類型的默認值比如:

  1. 字符串變量的默認值為 空字符串
  2. 整型 和 浮點型 變量的默認值為 0
  3. 布爾型變量默認為 false
  4. 切片、函數、指針變量的默認為 nil

我們也可在聲明變量的時候為其指定初始值。變量初始化的標準格式如下:

var 變量名 類型 = 表達式

例如:

<code>

var

name

string

=

"王老師"

var

age

int

=

18

/<code>

或者一次初始化多個變量

<code>

var

name, age =

"王老師"

,

18

/<code>

注意:

Go 中雙引號 和 單引號是 不一樣 的,這裡要一定要使用雙引號,表示字符串,而在單引號表示 rune 類型的字符

類型推導

有時候我們會將變量的類型 省略,這個時候編譯器會根據等號右邊的值來 推導 變量的類型完成初始化。

例如:

<code>

var

name =

"王老師"

var

age =

18

/<code>
短變量聲明

在函數 內部 ,可以使用更簡略的 := 方式聲明並初始化變量。

<code>

package

main

import

(

"fmt"

)

var

m =

100

func

main

()

{ n :=

10

m :=

200

fmt.Println(m, n) } /<code>
匿名變量

匿名變量(anonymous variable),也稱作佔位符,或者空白標識符,通常我們用匿名接收必須接收,但是又不會用到的值。 匿名變量用一個 下劃線 _ 表示,例如:

<code>

func

foo

()

(

int

,

string

)

{

return

18

,

"王老師"

}

func

main

()

{ x, _ := foo() _, y := foo() fmt.Println(

"x="

, x) fmt.Println(

"y="

, y) } /<code>

匿名變量,優點有三:

  • 不分配內存,不佔用內存空間
  • 不需要你為命名無用的變量名而糾結
  • 多次聲明不會有任何問題

注意:

函數外的每個語句都必須以 關鍵字開始(var、const、func等) := 不能使用在函數外。 _ 多用於佔位,表示忽略值。

常量

相對於變量,常量是恆定不變的值,多用於定義程序運行期間不會改變的那些值。 常量的聲明和變量聲明非常類似,只是把 var 換成了 const,常量在定義的時候必須賦值。

<code>

const

pi =

3.1415

const

e =

2.7182

/<code>

聲明瞭pi和e這兩個常量之後,在整個程序運行期間它們的值都不能再發生變化了。

多個常量也可以一起聲明:

<code>

const

(

pi

=

3.1415

e

=

2.7182

)

/<code>

const同時聲明多個常量時,如果省略了值則表示和上面一行的值 相同。 例如:

<code>

const

(

n1

=

100

n2

n3

)

/<code>

上面示例中,常量n1、n2、n3的值都是100。

iota

iota 是go語言的常量 計數器,只能 在常量的表達式中使用。

iota 在const關鍵字出現時將被 重置為0。const中每新增一行常量聲明將使iota計數一次(iota可理解為const語句塊中的行索引)。 使用iota能簡化定義,在定義枚舉時很有用。

例如:

<code>

const

( n1 =

iota

n2 n3 n4 ) /<code>
幾個常見的iota示例:

使用_跳過某些值

<code> 

const

( n1 =

iota

n2 _ n4 ) /<code>

iota 中間插隊

<code>

const

( n1 =

iota

n2 =

100

n3 =

iota

n4 )

const

n5 =

iota

/<code>

多個iota定義在一行

<code>

const

( a, b =

iota

+

1

,

iota

+

2

c, d e, f ) /<code>


「Go」Go語言變量和常量

點關注 不迷路

如果你從本篇內容有收穫,求 點贊,求 關注,求 轉發 ,讓更多的人學習到。

如果本文有任何錯誤,請批評指教,不勝感激


分享到:


相關文章: