刚接触到golang,看了很多书,但是感觉不动手,永远就只是会一个Hello,world。
为了激励自己,特意创建一个学习笔记,希望也有人可以和我一起努力,一起进步。
包
每个go程序都是由包构成的,程序从main包开始运行
注意: 此程序的运行环境是固定的,因此 rand.Intn 总是会返回相同的数字。
package main
import (
"fmt"
"math/rand"
)
func main() {
fmt.Println("My favorite number is", rand.Intn(10))
}
//My favorite number is 1
导入
导入包的时候,可以使用圆夸号的方式进行,这是一种分组的方式导入
package main
import (
"fmt"
"math"
)
func main() {
fmt.Printf("Now you have %g problems.\n", math.Sqrt(7))
}
//Now you have 2.6457513110645907 problems.
也可以使用编写多个导入语句的方式进行,例如
import "fmt"
import "math"
但是使用分组导入的方式效率会更高。
导出名
在Go中,如果一个名字以大写字母开始,那么它就是已导出的。而你在导入一个包的时候,只可以引用已经导出的包。例如,下面的代码即将报错。
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.pi)
}
/*
# command-line-arguments
./test.go:9:14: cannot refer to unexported name math.pi
./test.go:9:14: undefined: math.pi
*/
如果你将pi改成Pi,则不会报错
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Pi)
}
//3.141592653589793
函数
-
函数可以没有参数或者接受多个参数。
例如:package main import "fmt" func add(x int, y int) int { return x + y } func main(){ fmt.Println(add(10,11)) } //21
如果在函数申明的几个参数,类型相同,则可以省略操作
func add(x, y int) int {
return x + y
}
-
多值返回
函数可以返回任意多个值。如下所示:package main import "fmt" func swap(x, y string)(string, string) { return y, x } func main(){ a, b := swap("one", "two") fmt.Println(a, b) } //two one
-
命名返回值
go的返回值可以被命名
没有参数的return 会返回已经命名的返回值package main import "fmt" func split(sum int) (x, y int) { x = sum * 4 / 9 y = sum - x return } func main() { fmt.Println(split(17)) } //7 10
变量
使用var声明,用于声明一个变量列表,例如
var c, python, java bool
未完待续