今天开始学习GO语言,下面是我的学习笔记
1.首先是基本的格式,package, main func和print。
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
import (
"fmt"
"math/rand"
)
使用是使用rand.Intn(10)调用。
下面是函数的定义
func add(x int, y int) int {
return x + y
}
也可以写作
func add(x, y int) int {
return x + y
}
同时函数也可以有两个返回值return x, y 然后使用a, b := swap("hello", "world")
如果提前定义了返回的变量名称,则直接return即可
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}
变量的声明和初始化
var i, j int = 1, 2
k := 3
print也可以输出多个变量 fmt.Println(i, j, c, python, java)
2. 基本类型
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
类型的强制转换不同于Java,使用int(i)进行
常量定义const Pi = 3.14,不使用:=
声明多个常量或者变量都可以使用 var () 和 const ()
Go里只有for 一种循环
for i := 0; i < 10; i++ {
sum += i
}
for 也可以当成 while使用
for sum < 1000 {
sum += sum
}
也可以 for ; x<1;{} 和 for {}
条件语句
if x < 3 {}
if v := math.Pow(x, n); v < lim {
return v
}
switch os := runtime.GOOS; os {
case "darwin":
fmt.Println("OS X.")
case "linux":
fmt.Println("Linux.")
default:
// freebsd, openbsd,
// plan9, windows...
fmt.Printf("%s.", os)
}
如果switch为空则类似于if
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("Good morning!")
case t.Hour() <= 23:
fmt.Println("Good afternoon.")
default:
fmt.Println("Good evening.", t)
}
defer func,上一层返回后在执行,先进后出,下面输出为counting done 9 8 7 6 5 4 3 2 1 0
func main() {
fmt.Println("counting")
for i := 0; i < 10; i++ {
defer fmt.Println(i)
}
fmt.Println("done")
}