关于编译
特殊的点
Go 设计者思想: 一个问题尽量只有一个解决方法
- go 语言定义的变量或者 import 的包如果没有使用到,代码不能编译通过
- Go 方法由一条条语句构成,每个语句后不需要分号(Go 语言会在每行后自动加分号)
- Go 编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个
- 块注释里面**不允许有块注释嵌套 **
- 一行最长不超过 80 个字符,超过的请使用换行展示
- {}不允许分行写
变量
标识符
- package名字和目录保持一致
- 命名用驼峰法
- 首字母大写是公开的,首字母小写是私有的
变量使用【声明后若不赋值,使用默认值】
变量作用域 赋值语句不能在函数体外
——下划线问题
数据类型
浮点数 %T类型
字符类型英文字母-1 个字节 汉字-3 个字节
bool 类型占 1 个字节
string
··->用于多行注释
如果想要修改字符串中的值?
默认值
关于类型转换
Go 在不同类型的变量之间赋值时需要显式转换。也就是说 Golang 中数
据类型不能自动转换
string和基本类型的互转要确保 String 类型能够转成有效的数据
错误类型
分组技巧
iota枚举
指针
引用类型和值类型
数组和结构体是值类型
struct类型传值的
运算符
++和–
- Golang 的自增自减只能当做一个独立语言使用
- 只有 a++ a-- 没有 ++a --a
比较运算符"=="不能误写成 “=”
赋值运算符的运算顺序是从右往左
&&和||
运算符的优先级无三目运算符
Scanln和Scanf
程序流程控制
Switch
- case 后面可以带多个表达式
- case 后面不需要带 break , 程序匹配到一个 case 后就会执行对应的代码块,然后退出 switch,如 果一个都匹配不到,则执行 default
- switch 后也可以不带表达式,类似 if --else 分支来使用
- switch 穿透-fallthrough默认只能穿透一层
- Type Switch:switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际指向的
变量类型
for
if
goto
函数
基本语法 也是一种数据类型
(a int,b int)(a,b int)
Go不支持函数重载
自定义数据类型的使用
type myInt int
:::success
在go中,myInt和int虽然都是int类型,但go认为myInt和int两种类型
:::