Go语言被称为21世纪的语言,具有速度快、高性能,简介明了,灵活,良好的并行架构,安全等特点。网络上有大量的Go语言与现有语言的对比,在此就不再赘述,我们直接开启Go语言的学习之旅。
Hello world
go语言的程序以.go
结尾,下面是go语言的hello world
package main //go语言类似java的包结构,入口程序包名必须为main
import(
"fmt" //引入系统包,fmt主要包括了输入输出等
)
func main(){//入口函数,函数名为 func main()
fmt.Println("hello world")
}
Go语言程序行末不需要分号,除非两个以上的
statement
处于同一行。实际上,换行符之后跟上特定的符号会被转化成为分号,所以有一些需要注意的格式。
- 大括号
{
要处于声明的行末,而不能独自一行 - 在类似
x+y
的表达式中,可以在+
后换行,而不能再+
前换行。
例如
package main
import(
"fmt"
)
func main()
{//syntax error: unexpected semicolon or newline before {
x := 1
y :=2
var z= x+
y
var z= x
+y // +y evaluated but not used
fmt.Println(z)
}
go的控制流
if else
package main
import(
"fmt"
)
func main() {
x := 1
y :=2
var z= x + y
if z > 3{
fmt.Println("yes")
}else{
fmt.Println("no")
}
/*--
if z > 3{
fmt.Println("yes")
}
else{//compile error
fmt.Println("no")
}
//----*/
}
循环
go语言中的循环依靠for
关键词实现,没有while
,基础表达式为
for initialization; condition; post{
//TODO: content
}
initialization
循环前表达式
condition
进入循环的条件
post
每次循环结束之后执行的表达式
任何一部分都可以省略,于是我们可以得到
//通常意义的for
for x=1;x<10;x++{
fmt.Println(x)
}
// 类似while
x = 1
for x <10{
fmt.Println(x)
x++
}
//无线循环
x = 1
for{
fmt.Println(x)
x++
if x >= 10{
break
}
}
//range 作用于slice(切片)
nums := []int{2, 3, 4} //slice声明,以后再讨论
sum := 0
for _, num := range nums {//go语言不允许未使用的变量声明,需要用_占位
sum += num
}
fmt.Println("sum:", sum)