go基礎——基本資料型別
阿新 • • 發佈:2021-09-13
GO語言的資料型別:
1.基本資料型別:
布林型別:true,false
數值型別:整數,浮點,複數complex
字串:string
2.複合資料型別
array,slice,map,function,pointer,struct,interface,channel...
1.值型別:儲存的是數值本身,資料傳遞給其他變數時傳遞的是資料的副本。
int,float,string,bool,array,struct
2.引用型別:儲存的是資料的記憶體地址,資料傳遞時傳遞的地址。預設零值是nil
slice,map,channel
布林型別和數值型別
package main import "fmt" func main() { //1.bool var b1 bool b1 = true fmt.Printf("%T,%t\n", b1, b1) b2 := false fmt.Printf("%T,%t\n", b2, b2) //2.整數 /* 有符號,最高位表示符號位,0正,1負 int8,-128到127 int16,-32768到32767 int32,-2147483648到2147483647 int64,-9223372036854775808到9223372036854775807 無符號8位整型,所有位都表示數值 uint8,0到255 uint16,0到65535 uint32,0到4294967295 uint64,0到18446744073709551615 */ //通常使用int和uint,位數根據作業系統自動選擇 //但在語法角度,int和int64不是同一種類型 var i1 int = 1000 var i2 int64 = 2000 fmt.Printf("%d,%T\n", i1, i1) fmt.Printf("%d,%T\n", i2, i2) //byte:uint8的別稱 //rune:int32的別稱 var i3 uint8 = 100 var i4 byte = i3 fmt.Printf("%d,%T\n", i4, i4) //型別推斷,預設為int var i5 = 500 fmt.Printf("%d,%T\n", i5, i5) //3.浮點:float32,float64 var f1 float32 = 3.1415926 var f2 float64 = 3.1415926 fmt.Printf("%f,%T\n", f1, f1) //預設保留6位小數 fmt.Printf("%f,%T\n", f2, f2) fmt.Printf("%.2f,%T\n", f1, f1) //保留兩位小數 fmt.Println(f2) }
字串
package main import "fmt" /* 字串: 1.概念:多個byte的集合,理解為一個字元序列 2.語法: 使用雙引號"abc","hello" 也可以使用`abc`,`hello` */ func main() { //1.定義字串 var s1 string = "彗星" var s2 string = `恆星` fmt.Printf("%s,%T\n",s1,s1) fmt.Printf("%s,%T\n",s2,s2) //2.單引號雙引號區別 s3 := 'a' s4 := "a" fmt.Printf("%d,%T\n",s3,s3) //單引號是ASCII碼,int32型別 fmt.Printf("%s,%T\n",s4,s4) s5 := '天' fmt.Printf("%d,%T,%c,%q\n",s5,s5,s5,s5) //單引號中文,是Unicode編碼 //3.轉義字元 fmt.Println("\"haha\"") fmt.Println(`"haha"`) fmt.Println("`haha`") fmt.Printf("hello\tworld\n") }
資料型別轉換
package main
import "fmt"
/*
資料型別轉換:
go語言是靜態語言,定義、賦值、運算必須型別一致
語法:Type(Value)
注意:
相容的型別才能轉換
常數自動轉換,變數才需要手動轉換
*/
func main() {
var a int8 = 10
var b int16
b = int16(a)
fmt.Println(a, b)
}