GoLang基礎語法
變數定義
從hello world入手
package main import "fmt" func main() { fmt.Println("Hello World") }
控制檯輸出:
Hello World
變數預設值
package main import "fmt" func main() { var a int var s string fmt.Println(a, s) }
控制檯輸出:
注:s為"",故打印出來沒有效果
如果想讓""字串顯示,則程式碼如下:
package main import "fmt" func main() { var a int var s string fmt.Println(a, s) fmt.Printf("%d %q\n", a, s) }
控制檯輸出:
注:s為"",故打印出來沒有效果
0 0, ""
變數定義並初始化
第一種方式
package main import "fmt" func main() { var a, b int = 3, 4 var s string = "abc" fmt.Println(a, b, s) }
控制檯輸出:
3 4 abc
第二種方式
package main import "fmt" func main() { var a, b, c, d = 3, 4, true, "def" fmt.Println(a, b, c, d) }
控制檯輸出:
3 4 true def
第三種方式
package main import "fmt" func main() { a, b, c, d := 3, 4, true, "def" fmt.Println(a, b, c, d) }
控制檯輸出:
3 4 true def
如果是在包內定義變數而非func中定義變數,不能使用使用第三種方式,即不能使用:=。
程式碼如下:
package main import "fmt" var wy= 3 var wyy = 4 var ss = "3456" func main() { fmt.Println(wy, wyy, ss) }
還可以如下定義:
package main import "fmt" var ( wy= 3 wyy = 4 ss = "3456" ) func main() { fmt.Println(wy, wyy, ss) }
輸出如下:
內建變數型別
bool, string 加u,代表無符號整數;不加u,代表有符號整數;不規定長度,與作業系統相關 (u)int, (u)int8, (u)int16, (u)int32, (u)int64 uintptr: 無符號整型,長度與作業系統相關,用於存放一個指標, ptr代表指標型別(Pointer) byte: 類似 uint8 rune: 字元型,4個位元組, 32位二進位制位,類似 int32 float32, float64 complex64: 複數:實數和虛數為32位 float32 complex128: 複數:實數和虛數為64位 float64
Golang中的複數
package main import ( "fmt" "math/cmplx" ) func main() { c := 3 + 4i fmt.Println(cmplx.Abs(c)) }
尤拉公式
package main import ( "fmt" "math/cmplx" "math" ) func main() { fmt.Println( cmplx.Exp(1i * math.Pi) + 1) }
控制檯輸出
(0+1.2246467991473515e-16i)
型別轉換
型別轉換是強制的,無隱式型別轉換
勾股定理
package main import ( "fmt" "math" ) func main() { var a, b int = 3, 4 fmt.Println(math.Sqrt(float64(a*a + b*b))) }
控制檯輸出