go语言入门教程
一、基本概念
1. Hello world
Hello Go
我们先创建一个文件,代码如下:
package main
import"fmt"
func main() {
fmt.Printf("hello Golang\n");
}
执行此程序:
$ go
$ Hello Golang
2. 包
Golang 程序由包(packages)组成,程序从 main 包开始运行:
package main
此语句表示此文件属于 main 包(多个源文件可以属于同一个包)。import 语句后接上包所在的路径(被叫做包路径或导入路径),一个目录中放置一个包,通常的做法是,目录名和包名相同:
import (
"fmt"
"math/rand"
)
这里的 “fmt” 和 “math/rand” 为包路径(导入路径)。上面的 import 语句也可以这样写:import"fmt"
import"math/rand"
我们导入了包之后,就可以通过 “包名.name” 来引用导出的 name 了,例如:
import"fmt"
// fmt 包导出了 Printf
fmt.Printf("hello Golang\n");
在 Golang 中,一个名字如果首字母大写则表示此名字被导出。
3. 函数
package main
import"fmt"
func add(x int, y int)int {
return x + y
}
func main() {
fmt.Println(add(42, 13))
}
需要注意的就是,变量名在类型之前,这和很多语言都不一样。另外x int, y int也可以写为x, y int: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("hello", "world")
fmt.Println(a, b)
}
返回值可以被指定变量名,并且像变量一样使用:
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))
}
可以看到 split 函数直接使用 return 语句而不用带参数。
import语句4. 变量
变量的声明使用 var 语句:
var i int
var c, python, java bool
变量在声明时可以进行初始化:
var x, y int = 1, 2
var i, j = true, "hello"
我们看到,初始化时可以指定也可以不指定变量类型。按照 Golang 的语法,在函数外的任何结构(construct)都通过一个关键字开始,例如变量使用var关键字开始,函数使用func关键字开始。在函数内,变量赋值可以使用:=操作符:
package main
func main() {
var x, y int = 1, 2
i, j := true, "hello"
}
:=操作符左边为变量,右边为值。
5. 数据类型
基本数据类型:
1. bool
2. string
3. int int8 int16 int32 int64
4. uint uint8 uint16 uint32 uint64
5. uintptr
6. byte(等价于 uint8)
7. rune(等价于 int32,用于表示一个 unicode code point)
8. float32 float64
9. complex64 complex128
类型转换使用表达式 T(v),含义为将 v 转换为类型 T:
var i int = 42
var f float64 = float64(i)
i := 42
f := float64(i)
类型转换总需要显式的进行。
使用 const 来声明常量:
const Pi = 3.14
const (
Big = 1 << 100
Small = Big >> 99
)
6. 控制语句
for 语句
Golang 使用(且只使用)for 来进行循环(没有 while 语句):package main
func main() {
sum := 0
for i := 0; i < 10; i++ {
sum += i
}
// 这种写法等价于 C/C++ 等语言中的 while 语句
for sum < 1000 {
sum += sum
}
}
区别于 C/C++ 等语言,使用 for 语句时不需要 () 并且 {} 是必须的(后面谈到的 if、switch 在此语法处理上也是一样的)。如果需要无限循环,那么使用:
for {
}
if 语句
if 语句可以在执行条件判断前带一个语句(这常被叫做 if 带上一个短语句),此语句中变量的生命周期在 if 语句结束后结束。例如:
package main
import (
"fmt"
"math/rand"
)
func main() {
if n := rand.Intn(6); n <= 2 {
fmt.Println("[0, 2]", n)
} else {
fmt.Println("[3, 5]", n)
}
// 这里开始无法使用变量 n
}
switch 语句
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Print("Go runs on ")

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。