go的基础
变量
通过英文命名
声明和赋值
var a int
a := 1
建议使用显式声明,这样更加明确
支持多变量类似python
a,b := 1, 2
变量的作用域
全局变量在函数外的变量
局部变量:局部有效,例如函数里面,作用域里面
常量
const 不可变的量
尽量少使用全局变量,使用常量
基本数据类型
数值类型
- int uint int8 uint8 float32 float64 complex64 complex128 rune 字符类型
- string rune 布尔类型
- bool 数组类型
- array numbers := 2int {11,22}
切片类型
- slice sl1 := []int{1,2,3,4}
结构体类型
- type Name struct{}
函数类型
- var name = func(){}
interface
- 接口 type Name interface { Say()string Do(int)int }map
- var map mapstringstring
channel
- ch1 := make(chan string)
类型转换
标准库strconv了
例如
代码语言:go复制strconv.Itoa(price)
自定义类型
使用type定义
type A string
var a A = "test"
函数
普通返回
func A(x type)(type1, type2){
}
支持命名返回值
func A(x type)(a type1, b type2){
}
匿名函数
var name = func(){}
流程控制
- if else if else
- switch .. case
- for循环
结构体
代码语言:txt复制 type Person struct{
Name string
Age int
}
func (p Person) SayHello() {
fmt.Println("hello world!")
}
p1 := Person{Name:"tom", Age:21}
p2 := new (Person)
p2.Name = "tom"
p2.Age = 31
接口
代码语言:txt复制type Name interface {
Say()string
Do(int)int
}