package main
import(
"fmt"
)
func main(){
fmt.Println("hello world")
}
func Add(a int,b int)int{
return a+b
}
//func 函数名(参数值 参数类型,...) 函数返回值类型{}
每个程序只有一个main包
所有go源码以.go结尾
标识符以字母或下划线开头,大小写敏感
_(下划线)是特殊标识符,用来忽略结果。
关键字
var和const:变量和常量的声明
go:用于执行
defer:在函数退出之前执行 ;后进先出的方式执行
fallthrough:go语言的switch case函数中的break是已经存在的,但不显示出来
加了fallthrough,会直接运行下一个case或default语句,不论条件是否满足
a:=8
switch{
case a < 3:
fmt.Println("小于3")
case a < 10:
fmt.Println("小于10")
fallthrough
// fmt.Println("值为8")
default:
fmt.Println("默认")
}
//若不加fallthrough,运行结果是 小于10
//加了fallthrough,运行结果是 小于10
// 默认
//在fallthrough语句后再写语句会报错
type:用于声明自定义类型
range:用于读取slice、map、channel数据
包访问控制规则:
go语言不存在隐式转换。(高转低会丢失精确度)
不支持重载;函数也可以赋值给变量
可变参数
func add(a int,b int,arg...int)int{}
//2个或多个参数
cap容量
切片赋值时,slice的cap容量只是和开始索引有关系
cap=引用对象的cap - 开始索引
slice扩容时,容量会变成之前cap的两倍
扩容之后的slice,引用的已经不是原先的那个数组了
原文:https://www.cnblogs.com/xiaohan0712/p/15197219.html