Go基础知识---执行流程及变量
一、go的开发注意事项及执行流程
1.1 go开发注意事项
- go区分大小写
- go的语句后面,不需要带分号。所以不能把多条语句放在一行
- go定义的变量或者import包,必须使用,不然报错
1.2 go的执行流程
一种是用go build 打包成可执行文件后,运行可执行的文件,这样就可以将可执行文件拷贝到没有go开发环境的机器上,仍可以运行。
一种是直接go run 运行文件,这样要求其他机器也有go的环境。
二、go 变量
2.1变量声明方式
-
指定变量类型(不赋值,则使用默认值)
var i int -
根据值自行判定
var num = 10.11 -
省略var,:=左侧的变量不应该是已经声明过的,不然编译报错
name := "tom" -
多变量声明 一次性定义多个变量
n1, name, n3 = 100, "to", 888 -
变量赋值时,不能改变数据类型
2.2 数据类型
查看变量的类型:fmt.Printf("%T", x) 查看变量的占用字节数:fmt.Printf("%d",unsafe.Sizeof(x))
2.2.1 基本数据类型
-
整数
int(64位系统64bit),int8,int16,int32,int64 uint,uint8,uint16,uint32,uint64,byte(无符号,等价uint8)
默认值 0
-
浮点类型
float32(4字节),float64(8字节,默认声明)
默认值 0
-
字符类型
使用byte来保存单个字母字符 传统的字符串由字符构成,而go的字符串由字节组成
var c byte = 'h' var x int = '哈' fmt.Printf("%c %c", c, x)对于字符的码值大于255的,可以通过int类型来保存,如“哈”
英文1字节、汉字3字节,字符使用utf-8编码
go语言的编码统一成了utf-8。没有编程乱码的困扰
-
布尔型
1个字节,true false
默认值 false
-
字符串
go的字符串是由单个字节连接起来的。使用utf-8编码
字符串一旦赋值,不能再修改。字符串不可变。
默认值 “”
字符串形式:
- 双引号
- 反引号:
string以字符串原生形式输出,包括换行和特殊字符,可以实现防止攻击、输出原字符串效果
字符串拼接通过+号,需要用到多行字符串,+保留在上一行
2.2.2 基本数据类型之间的转换
go在不同类型的变量之间赋值时需要显示转换。不能自动转换!!
- 基本语法 T(v)表示将变量v转换为类型T
- 注意!被转换的是变量存储的数据(值),变量本身的数据类型并没有变化。如下图i的数据类型没有变,并且改变其类型时,报错。
- 转换中,大范围转化为小范围的时候,可能会有溢出。
2.2.3 基本数据类型和string之间的转换
- 基本数据类型转string
-
fmt.Sprintf("%参数",表达式)
Sprintf根据format参数生成格式化的字符串
- strconv包的函数
- string转基本数据类型
- strconv包的函数
String不能转换为有效数据的时候,会转化成默认值,如“哈”不能转化为整数,会转化为0