搞定Go語言 第2天1 Go語言基礎之變數和常量

2021-10-25 03:22:52 字數 4179 閱讀 5546

變數常量

iota

變數和常量是程式設計中必不可少的部分,也是很好理解的一部分。

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

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

go語言中有25個關鍵字:

break        default      func         inte***ce    select

case defer go map struct

chan else goto package switch

const fallthrough if range type

continue

forimport

return var

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

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

complex real imag

panic recover

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

變數(variable)的功能是儲存資料。不同的變數儲存的資料型別可能會不一樣。經過半個多世紀的發展,程式語言已經基本形成了一套固定的型別,常見變數的資料型別有:整型、浮點型、布林型等。

go語言中的每乙個變數都有自己的型別,並且變數必須經過宣告才能開始使用。

go語言中的變數需要宣告後才能使用,同一作用域內不支援重複宣告。 並且go語言的變數宣告後必須使用。

go語言的變數宣告格式為:

var 變數名 變數型別
變數宣告以關鍵字var開頭,變數型別放在變數的後面,行尾無需分號。 舉個例子:

var name string

var age int

var isok bool

每宣告乙個變數就需要寫var關鍵字會比較繁瑣,go語言中還支援批量變數宣告:

var (

a string

b int

c bool

d float32

)

go語言在宣告變數的時候,會自動對變數對應的記憶體區域進行初始化操作。每個變數會被初始化成其型別的預設值,例如: 整型和浮點型變數的預設值為0。 字串變數的預設值為空字串。 布林型變數預設為false。 切片、函式、指標變數的預設為nil。

當然我們也可在宣告變數的時候為其指定初始值。變數初始化的標準格式如下:

var 變數名 型別 = 表示式
舉個例子:

var name string =

"q1mi"

var age int = 18

或者一次初始化多個變數

var name, age =

"q1mi", 20

型別推導

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

var name =

"q1mi"

var age = 18

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

package main

import

("fmt"

)// 全域性變數m

var m = 100

func main(

)

在使用多重賦值時,如果想要忽略某個值,可以使用匿名變數(anonymous variable)。 匿名變數用乙個下劃線_表示,例如:

func foo(

)(int, string)

func main(

)

匿名變數不占用命名空間,不會分配記憶體,所以匿名變數之間不存在重複宣告。 (在lua等程式語言裡,匿名變數也被叫做啞元變數。)

注意事項:

函式外的每個語句都必須以關鍵字開始(var、const、func等)

:=不能使用在函式外。

_多用於佔位,表示忽略值。

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

const pi = 3.1415

const e = 2.7182

宣告了pi和e這兩個常量之後,在整個程式執行期間它們的值都不能再發生變化了。

多個常量也可以一起宣告:

const (

pi = 3.1415

e = 2.7182

)

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

const (

n1 = 100

n2n3

)

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

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

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

舉個例子:

const (

n1 = iota //0

n2 //1

n3 //2

n4 //3

)

幾個常見的iota示例:

使用_跳過某些值

const (

n1 = iota //0

n2 //1

_ n4 //3

)

iota宣告中間插隊

const (

n1 = iota //0

n2 = 100 //100

n3 = iota //2

n4 //3

) const n5 = iota //0

定義數量級 (這裡的《表示左移操作,1<<10表示將1的二進位制表示向左移10位,也就是由1變成了10000000000,也就是十進位制的1024。同理2<<2表示將2的二進位制表示向左移2位,也就是由10變成了1000,也就是十進位制的8。)

const (

_ = iota

kb = 1 <<

(10 * iota)

mb = 1 <<

(10 * iota)

gb = 1 <<

(10 * iota)

tb = 1 <<

(10 * iota)

pb = 1 <<

(10 * iota)

)

多個iota定義在一行

const (

a, b = iota + 1, iota + 2 //1,2

c, d //2,3

e, f //3,4

)

搞定Go語言 第2天13 Go語言檔案操作

計算機中的檔案是儲存在外部介質 通常是磁碟 上的資料集合,檔案分為文字檔案和二進位制檔案。os.open 函式能夠開啟乙個檔案,返回乙個 file和乙個err。對得到的檔案例項呼叫close 方法能夠關閉檔案。package main import fmt os func main 關閉檔案 fil...

程式語言(1) Go 語言環境安裝

go 語言支援以下系統 各個系統對應的包名 作業系統 包名windows 以下介紹了在unix linux mac os x,和 freebsd系統下使用原始碼安裝方法 tar c usr local xzf go1 4.linux amd64 tar gz3 將 usr local go bin ...

搞定Go語言 第2天4 Go語言基礎之流程控制

go語言中最常用的流程控制有if和for,而switch和goto主要是為了簡化 降低重複 而生的結構,屬於擴充套件類的流程控制。if else 分支結構 if條件判斷基本寫法 go語言中if條件判斷的格式如下 if 表示式1 else if 表示式2 else當表示式1的結果為true時,執行分支...