go语言特性
高性能,高并发(最核心)
go语言不同于其他并发编程语言的一个重要特性是go语言使用goroutine协程,使线程更加轻量化,同一台机器可以申请成千上万个协程,通过一个关键字go就可以直接创建协程,相比于java的多线程开发,更加便捷。 一个协程的例子:
func main() {
src := make(chan int)
dest := make(chan int, 3)
go func() {
defer close(src)
for i := 0; i < 10; i++ {
src <- i
}
}()
go func() {
defer close(dest)
for i := range src {
dest <- i * i
}
}()
for i := range dest {
println(i)
}
}
go语言简单语法
变量声明:
var a = 123(自动推断类型) 或者var a int = 123
常量声明:
const a = 456
数组声明:
var a [3]int 或者 a := [3]int{1,2,3}(赋初值)
if-else语法
if a < 1{
...
}else{
...
}
注意每个if,else后面都要跟括号
循环
只有for循环
for i := 1;i < 10;i++{
Println(i);
}//经典三段式
for{
...
}//死循环
for i,num := range nums{
Println("第",i,"个数字为",num);
}//遍历数组,i为下标,num为当前下标对应的元素
个人认为最好用的是第三个,并且不同于C++的直接获取元素,go语言这个遍历还可以获得下标,更加便捷。
函数
func myFunction(a int)(num int,err error){
...
}
第一个括号中的是参数,第二个中的是返回值,其中前者是返回的值,后者是错误信息。相比于C++中的try-catch语法,go语言的这种写法更加优雅简洁。