Go语言的特点:
1.高性能、高并发
2.语法简单、学习曲线平缓
3.丰富的标准库
4.完整的工具链
5.静态链接
6.快速编译
7.跨平台
8.垃圾回收
用Go写一个Hello World
package main
import
{
"fmt"
}
func main ()
{
fmt.Println("hello world")
}
Go 语言字符串是内置类型可以直接通过+号去拼接、可以用等于号比较两个字符串
Go语言里运算符的优先级与C/C++一致
Go语言声明变量时有两种:1.var a=1;会根据后面的值来推导a变量的类型 2.f:=2; 变量名:=值
Go里面的常量 在变量前加一个const,go中的常量无确定类型,它会根据上下文自己确定一个类型
Go里面的循环只有for循环
Go里面的switch非常强大,switch 变量可以是任何类型。
Go里面的switch不用写break,case符合就会退出switch,所以Go里面的switch可以当作循环使用,不写变量,case当条件。
Go的数组 var a[5]int 可以存放五个整形元素的数组a,数组可以存储特定索引上的值。
map在C++里面是映射,哈希;在Go中map是一种数据结构,用于存储一系列无序的键值对。映射功能强大的地方是,能够基于建快速检索数据。键就像索引用于,指向与该键关联的值。
Golang里面的函数与C/C++不同的是Golang里面的函数它的类型在变量后面
func add(a int,b int)int
{
return a+b;
}
Golang里面的函数都返回多个值,第一个值是正确的返回结果,第二个值是错误信息。
func exists(m map[string]string,k string)(v string,ok bool)
{
v,ok=m[k]
return v,ok
}
这个函数结束会返回两个信息 第一个是v的值,第二个是bool的值对或错
Golang里面指针的主要用途是对传入的值进行·修改
package main
import "fmt"
func add2(n int)//这个函数无效,形参传入的是值,无法改变变量n的大小
{
n+=2
}
func add2ptr(n*int)//这个函数有效,可改变n的值
{
*n+=2;
}
func main ()
{
n:=5
add2(n)
fmt.Println(n)
add2ptr(&n)
fmt.Println(n)
}
Golang的结构体是带字段类型的集合,是用户自定义类型。
结构体是将零个或多个任意类型的命名变量组合在一起的聚合数据类型。每个变量都叫做结构体成员。
Golang语言里面的结构体是值类型。
Golang语言里面的字符串包含指向字节里面的指针的数组的大小。