源文件
源码文件使用utf-8编码,对Unicode支持良好,每个源文件都属于包的一部分,在文件头部使用package声明所属包名称
test.go
package main
import {
"fmt"
}
func main(){
fmt.println("hello, world")
}
未使用的导入,未使用的变量等,go会进行检查,编译器会将其当做错误
变量
使用var定义变量,支持类型推断.基础类型数据划分明确,有助于编写跨平台应用.编译器确保变量总是被初始化为零值,避免出现意外状况
package main
func main(){
var x int32
var s = "hello, world"
println(x, s)
}
在函数内部,还可以省略var关键字,使用更简单的定义模式
package main
func main(){
x := 100 // 类型推导
println(x)
}
表达式
Go仅有三种流控制语句
if
package main
func main(){
x := 100
if x > 0{
println("x")
} else if x < 0 {
println("-x")
}else{
println("0")
}
}
switch
package main
func main(){
x := 100
switch {
case x > 0:
println("x")
case x <0:
println("-x")
default:
println("0")
}
}
package main
func main(){
x := "y"
switch x {
case "y":
println("yes")
case "n":
println("not")
default:
println("nothing")
}
}
for
func main(){
for i:=0;i<5;i++{
println(i)
}
for i:=4;i>0;i--{
println(i)
}
}
func main(){
x:=0
for x < 5{ //相当于whlie(x<5) {...}
print(x)
x++
}
}
func main(){
x:=0
for { //相当于whlie(True) {...}
print(x)
x--
if x<0{
break
}
}
}
函数
函数可定义多个返回值,设置对其命名
package main
import {
"errors"
"fmt"
}
func div(a, b int) (int, errors){
if b==0 {
return 0, errors.New("division by zero")
}
return a/b, nil
}
网友评论