文章目录
- 标识符
 - 变量基础语法
 - 字符串类型
 - 类型转换
 - string和其他基本类型转换
 - 其他类型转string
 - string转其他类型
 
- 指针类型
 - 运算符
 - 标准IO
 - 分支语句
 
个人博客
标识符
- 驼峰法,首字母大写可以在其他包里使用,首字母小写只能在本包内使用
 - 跨包使用,的import地址从src的子目录开始,src以及src所在的GOPATH自动补全
 
变量基础语法
-  
定义变量
 -  
var i int = 10 -  
var关键字+变量名+变量类型
 -  
var i = 10 -  
自动推断类型
 -  
i := 10 -  
简略写法
 
-  
对应的,可以声明多个变量
 -  
var a, b, c int = 1, "a", 2 -  
var a, str1, b = 1, "a", 2 -  
a, str1, b := 1, "a", 2 
-  
var (i = 1j = 2 ) -  
另一种声明方法,开发中常用
 -  
import ("fmt""unsafe" ) -  
导包也可以类似这样
 
- 不能改变变量的类型,例如开始赋值整数,后来又赋值浮点数。
 - 默认值,数默认为0,字符串默认为空串
 
字符串类型
-  
利用UTF-8编码,支持中文
 -  
go中字符串是常量,无法修改
 -  
引号
- 双引号"" :会识别转义字符
 - 反引号``:不识别转义字符(防止SQL注入之类的?)
 
 -  
加号拼接,可以分行写(加号放行尾)
 
类型转换
-  
go不会自动转换类型,需要显式转换
 -  
var i int = 1 var j float32 = float32(i) 
string和其他基本类型转换
其他类型转string
func main() {var a int = 10var b float32 = 3.14var s string = fmt.Sprintf("%d %.2f", a, b)fmt.Println(s)
}
 
string转其他类型
b, err := strconv.ParseBool("true")
f, err := strconv.ParseFloat("3.1415", 64)//返回64位要 强转
i, err := strconv.ParseInt("-42", 10, 64)//进制 和 位数
u, err := strconv.ParseUint("42", 10, 64)
 
- 返回值有两个
 - 可以使用_代替err,下划线是特殊的变量,表示忽略返回值。
 - 如果无法转换则返回0
 - 学英语:parse是分析的意思,strconv = string-conversion
 
指针类型
- 和C语言类似,不赘述。
 
运算符
- 没有三元运算符,只能用if else,if后面没有小括号
 - 运算与C语言一致
 - 自增自减只能单独使用,不能在自增自减的同时给变量赋值
 - 自增自减的++和–都必须放在变量的后边!
 
标准IO
-  
string也是基本类型,传入&地址。
 -  
func main() {var str string_, _ = fmt.Scanln(str)fmt.Println(str) } 
分支语句
- 基本和C语言一致
 - switch 不用break;
 - 可以匹配多个表达式,逻辑或的关系
 - case,switch后面是一个表达式(不一定是常量)
 - case和switch的数据类型必须一致
 - case的常量(字面量)不能重复
 - switch后面可以不带表达式,可以代替if else作分支选择
 - fallthrough关键字可以穿透到下一分支,用来代偿省略break的功能