Go語言之變量與基礎數據類型


一、基礎介紹

Go 是靜態(編譯型)語言,是區別於解釋型語言的弱類型語言(靜態:類型固定,強類型:不同類型不允許直接運算)

例如 python 就是動態強類型語言

1、Go 的特性:

跨平台的編譯型語言,交叉編譯

管道(channel),切片(slice),並發(routine)

有垃圾回收機制

支持面向對象和面向過程的編程模式(Go 的面向對象沒有類的概念)

2、Go 的常用命令:

go env  	// go的環境變量
    -GO111MODULE=   		// 空的,現在沒有使用MODULE模式
    -GOPATH=C:\Users\YS\go 	// 代碼存放路徑
    -GOROOT=c:\go 				// go sdk安裝路徑
go build  	// 編譯型語言,需要先編譯再執行,編譯成可執行文件,執行可執行文件
go run  	// 編譯並執行,開發階段用,兩步並作一步

go get 		// 下載並安裝包和依賴等同於pip install
go version
go fmt 		// 運行gofmt進行格式化(go fmt :自動將代碼格式)

3、Hello Word

// 單行注釋

/*
多行注釋
多行注釋
 */


// Go(所有編譯型語言)項目要運行,必須有一個入口
// Go 的入口是 main 包下的 main 函數

// main 包下可不可以有多個 main 函數

package main   	// 聲明包名,包名是 main,每一個 Go 文件都屬於某個包

import "fmt"    // 導入包,內置包

func main() {   // 定義了一個main函數,大括號包裹是函數體的內容
	fmt.Println("Hello World") 	// 打印函數等同與print()
}



// 編譯
go build s1.go
// 執行
s1.exe

// 編譯並執行
go run s1.go
// 在goland中,右鍵,運行即可

二、變量

go 語言的變量定義方式主要分為三種方式,並且不能重復定義。

定義方式

1、方式一:全定義

// var 變量名 變量類型 = 變量值

package main	

import "fmt"

func main() {
	var age int	= 10	// 在go中,變量定義了就必須使用,如果不使用就報錯
	fmt.Println(age)
}

2、方式二:類型推導(類型就不需要寫了)

package main

import "fmt"

func main() {
   var age = 20
   var name = "XiaoYang"
    
   fmt.Println(age, name)
   fmt.Printf("%T\n",name)    	// 查看變量類型 \n表示換行
   fmt.Printf("%p",&name) 		// 查看變量內存地址
}

// 輸出
20 XiaoYang
string
0xc000056230

3、方式三:簡略聲明(類型和 var 關鍵字都不寫)

package main

import "fmt"

func main() {
   age := 20
   var age int = 30   // 重復定義會報錯,不能重復定義
    
   fmt.Println(age)
}

4、其他定義方式:其他定義方式都是在前三種方式的基礎上做出變形而出現的:

只定義不賦值

var age int // 定義變量,如果只定義不賦值,只能用這種方式

var age		// 錯誤,無法判斷類型

聲明多個變量

var width, height int = 100, 50		// 聲明多個變量
var width, height = 100, 50			// 聲明多個變量
var width, height = 100, "XiaoYang"	// 聲明多個變量
width, height := 100, "XiaoYang"	// 聲明多個變量

聲明多個變量,並賦初始值

var (
   name = "XiaoYang"
   age int = 20
   height int
)
fmt.Println(name, age, height)

注意:

var age int = 20

name, age := "XiaoYang", 21		
// 這種情況不會報錯,我們覺得是重復定義,冒號左側只要有一個沒有定義過得變量就可以。

fmt.Println(name, age)

總結:

  1. 變量類型在定義階段就確定了,一旦確定,不允許改變
  2. 變量不可以重復定義
  3. 變量要先定義在使用

變量定義規范

  • 變量命名建盡量使用駝峰(大小寫有特殊意義)
  • Go 文件命名建議用下划線
  • 一個名字必須以一個字母(Unicode字母)或下划線開頭,后面可以跟任意的字母、數字或下划線
  • 大寫字母和小寫字母是不同的:Name 和 name 是兩個不同的變量
  • 關鍵字和保留字都不建議用作變量名

三、常量

常量定義的定義使用 const 關鍵字定義,不允許改變

方式一:

package main

import "fmt"

func main() {
   const age int = 20 // 不允許修改,修改會報錯

   fmt.Println(age)
}

方式二:類型推導

package main

import "fmt"

func main() {
   const age = 20 

   fmt.Println(age)
}

注意:不能使用 := 這種方式定義,這樣就是定義變量了

四、基礎數據類型

1、數字

// 有符號整形
int:	在32位機器是int32,在64位機器是int64
int8:	表示整數范圍是:8個比特位,8個bit是1byte ,第一位表示正負數0/1, 所以是2的7次方-1 的范圍
int16:	2的15次方減一
int32:	2的32次方減一
int64:	2的64次方減一
byte:	等於int8
short:	等於int16

// 無符號整形
uint8:	沒有負數表示,所以是2的8次方減一
uint16:	同上
uint32:
uint64:

2、浮點型(小數,32/64表示小數點后長度多少位)

float32
float64

3、布爾(Bool)

// 數據類型默認值:

數字類型是		0
字符串類型是	   空字符串
布爾類型		false

4、字符串

// 雙引號包裹
// 單引號包裹


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM