GO語言學習總結(variable, data type)
阿新 • • 發佈:2018-12-27
1. variable
1.1 變數使用關鍵字 var 定義。變數是強型別的。
package main
import "fmt"
var i int
var c, python, java bool
func main() {
fmt.Println(i, c, python, java)
}
1.2 定義變數時候可以不指定型別,而是通過賦值獲得型別
package main
import "fmt"
var i, j int = 1, 2
var c, python, java = true, false, "no!"
func main () {
fmt.Println(i, j, c, python, java)
}
1.3 函式內臨時變數定義,通過 := 定義
package main
import "fmt"
func main() {
var i, j int = 1, 2
k := 3
c, python, java := true, false, "no!"
fmt.Println(i, j, k, c, python, java)
}
2. data type
2.1 所有的資料型別
bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // alias for uint8
rune // alias for int32
// represents a Unicode code point
float32 float64
complex64 complex128
2.2 所有的資料型別必須顯示轉換,否則會編譯錯誤
var i int = 42
var f float64 = float64(i)
var u uint = uint(f)
2.3 常量
- 常量可以是數字,字串,字元,布林型別
- 常量的申明與變數相同,只是在前面加上const關鍵字
- 常量不能使用 := 賦值
package main
import "fmt"
const Pi = 3.14
func main() {
const World = "世界"
fmt.Println("Hello", World)
fmt.Println("Happy", Pi, "Day")
const Truth = true
fmt.Println("Go rules?", Truth)
}
3. struct
struct與C語言幾乎一樣,使用tpye和struct關鍵字定義。
package main
import "fmt"
type Vertex struct {
X int
Y int
}
func main() {
fmt.Println(Vertex{1, 2})
}
3.1 使用“點”訪問結構體內的變數
package main
import "fmt"
type Vertex struct {
X int
Y int
}
func main() {
v := Vertex{1, 2}
v.X = 4
fmt.Println(v.X)
}
Java中沒有struct還真是不完美。定義一個結構體要多寫好多程式碼。
3.2 構造時候指定變數名稱賦值
package main
import "fmt"
type Vertex struct {
X, Y int
}
var (
p = Vertex{1, 2} // has type Vertex
q = &Vertex{1, 2} // has type *Vertex
r = Vertex{X: 1} // Y:0 is implicit
s = Vertex{} // X:0 and Y:0
)
func main() {
fmt.Println(p, q, r, s)
}