Go語言學習 變數和常量

2021-10-22 23:15:17 字數 4300 閱讀 1165

學習程式語言中變數跟常量我們肯定是脫離不開的這也是入門的基礎

識別符號在程式語言中識別符號對我們開發中變數的命名,常量名,函式名,這裡為什麼不說方法名呢?因為go的方法跟函式長的很像(這個我們後面說),在go語言中識別符號由字母、數字和_(下劃線)組成,並且只能以字母和_開頭。 舉幾個例子:xiaohu,_123,_abc,a123

關鍵字關鍵字就是程式語言中預先定義好具有特殊含義的識別符號,在go語言中關鍵字和保留字都不建議作為變數名

go語言的關鍵字

break

default

func

inte***ce

select

case

defer

gomap

struct

chan

else

goto

package

switch

const

fallthrough

ifrange

type

continue

forimport

return

var

保留字

constants:

true

false

iota

nil(

go裡面的null)

types:

intint8

int16

int32

int64

uint

uint8

uint16

uint32

uint64

uintptr

float32

float64

complex128

complex64

bool

byte

rune

string

error

functions:

make

lencap

newcopy

close

delete

complex

real

imag

panic

recover

變數是什麼

程式執行過程中的資料都是儲存在記憶體中,我們想要在**中操作某個資料時就需要去記憶體上找到這個變數,但是如果我們直接在**中通過記憶體位址去操作變數的話,**的可讀性會非常差而且還容易出錯,所以我們就利用變數將這個資料的記憶體位址儲存起來,以後直接通過這個變數就能找到記憶體上對應的資料了。

變數型別宣告變數

go語言中的變數需要宣告才能使用,go語言中申明了變數必須使用(區域性變數定義一定要使用不然會報錯)

作用域:同一作用域不能重複宣告

**標準宣告變數

//標準宣告格式

var 變數名 變數型別

//go語言中的變數宣告是以var開頭 變數型別放在變數的後面,行尾無需分號,跟python樣暫時不能鏈式程式設計

var name string

var age int

var addr string

var flag bool

批量宣告變數

我們看到上面的變數宣告一次就需要var go語言提供了批量宣告的方式

var

( a string

b int

c bool

d float32

e float64

)var zhangsan,lisi string

變數的初始化

上面的變數我們只對其宣告沒有進行初始化,輸出的定義的變數我們還是可以看到值,這就是go語言在宣告變數的時候,會自動對變數對應的記憶體區域進行初始化操作。每個變數會被初始化成其型別的預設值,例如: 整型和浮點型變數的預設值為0。 字串變數的預設值為空字串。 布林型變數預設為false。 切片、函式、指標變數的預設為nil

package main

import

"fmt"

func

main()

//輸出: 0 0

我們宣告變數的時候對其進行指定初始值

//變數初始化的標準格式如下:

var 變數名 型別 = 初始值

如:var name string

="xiaohu"

var age int=20

//批量進行初始化

var name, age =

"xiaohu"

,20

//我們可以把變數左邊的型別省略,編譯器會根據等號右邊的值來推導變數的型別完成初始化。

var name =

"q1mi"

var age =

18// 看到這裡是否想起了js

函式內部中我們可以使用更簡略的:=方式宣告並初始化變數 (函式內部使用的簡略寫法)

package main

import

("fmt"

)var addr =

"上海"

// 全域性變數addr

func

main()

在上面中我們的函式內的變數如果不使用就會報錯,我們在宣告多個變數的時候想忽略某個值的時候我們就可以使用go的 匿名變數。go裡面的匿名變數使用的是乙個下劃線_

package main

import

("fmt"

)var addr =

"上海"

func

main()

//輸出並不會報錯

匿名變數不占用命名空間,不會分配記憶體,所以匿名變數之間不存在重複宣告

常量是什麼

常量是不會改變的值,定義程式執行期間不會改變的值,go語言中常量的關鍵字是 const

const age1 =

30const age2 =

20//定義了這倆個變數在程式執行的時候就不能修改值了

//批量宣告

const

( a =

100 bcd

)//b,c,d我們都沒有宣告值,但是他的值也等於100

iota常量計算器

iota只能在常量表示式的時候使用,

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

const

( a =

iota

//0 b //1

_//匿名變數

c //3

)

我們看到上面的說明是語句塊中的行索引(重點) 如下面例子,我們在宣告的時候插隊

const

( a1 =

iota

//0 a2 =

10//10

a3 =

iota

//2 a4 //3

)//上面一段是const語句塊,下面這個const是乙個新的 const語句塊了

const a5 =

iota

//0

看下面乙個例子,多個iota定義在一行 :

// 語句塊中的行索引(重點)

const

( a, b =

iota+1

,iota+2

//1,2

c, d //2,3

e, f //3,4

)

變數跟常量就學完了

go語言學習筆記2 變數 常量

一 變數 1 變數定義 var var 變數名 資料型別 example var a int 2 變數初始化 var a int 10 或者 a 10 自動推到型別 3 變數賦值 var a int a 10 多重賦值 i,j j,i 4 匿名變數 使用 func test a,b,c int re...

Go語言學習筆記 常量

常量是程式執行時,不會改變的量 go中常量的宣告方式和變數類似,有組合宣告,並行宣告,普通宣告 定義常量 const pi 3.14 這裡並沒有宣告變數型別,編譯器會自行判斷 dateformat string yyyy mm dd hh mm ss format 不提供資料型別和初始化值得常量視作...

Go語言學習 二 常量

package main import fmt 1定義常量的關鍵字const const pi float64 3.14159265358979323846 const zero 0.0 無型別負點常量 const size int64 1024 eof 1 無型別整形常量 const u,v fl...