数据类型
1.基础类型
2.聚合类型:数组,结构体
3.引用类型:slice,map,chan,pointer,func
4.接口类型
rune = int32
byte = uint8,强调一个值是原始数据,而非量值
uintptr,无符号整数,大小并不明确,但足以保存指针
%d, %o, %x, %X :十进制,八进制,16进制小写,16进制大写
%c:字符,%q:打印出包围字符的单引号
%#[1]x: #表示打印前缀,[1]表示使用第一个参数
-- 浮点数
多数情况都应该使用float64,%g, %e, %f 用于打印格式化
%g:自动选择格式
%e:带有指数
%f:不带指数,即e
%8.3f:不带指数,8位宽度,3位小数
-- 类型
%T
%v
-- 复数
complex64和complex128
-- 布尔值
true,false
%t
-- 字符串
字符串是不可变的字节序列。习惯上,文本字符串被解读成按UTF-8编码的codepoint码点。
内置的len函数返回字符串的字节数(并非文字符号的数目)。
子串生成操作s[i:j]产生一个新字符串,加号(+)运算符连接两个字符串而生成一个新字符串。
试图访问许可范围以外的字节,会触发宕机异常。
字符串字面量:使用“”,而原生的,则用反引号··,其中转义字符不起作用。
utf8.RuneCountInString, utf8.DecodeRuneInString
若遇到不合理字节,无论是显示调用utf8.DecodeRuneInString还是range循环,都会产生一个专门的Unicode字符‘\uFFFD’替换它,其输出通常是个黑色六角形,里面有个白色问号。
bytes,strings,strconv,unicode包对字符串操作很重要