/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}
说明
本文介绍 Go 语言中,基本数据类型
整数型
如下
var n1 uint8 = 1
var n2 uint16 = 2
var n3 uint32 = 3
var n4 uint64 = 4
var n5 uint = 5
var n6 int8 = 6
var n7 int16 = 7
var n8 int32 = 8
var n9 int64 = 9
var n10 int = 10
需要注意的是,
- 不声明的情况下,默认类型是 int,如下
var n = 12;
-
带 u 表示无符号,只能存非负整数,即正整数和零;
-
末尾的数字,表示用来表示二进制数字的位数有多少个,如 uint8,表示用 8 位二进制表示数字;
-
uint8 也可以用 byte 表示;
-
int 类型的大小取决于所使用的平台,32 位系统占 4 字节,64 位占 8 字节;
-
没有 int2、int7、int11 这种类型,数字只有 8、16、32、64 或者不带;
浮点型
go 语言中有两种浮点型:float32、float64
-
float32:最大范围约为 3.4e38,可用常量 math.MaxFloat32 表示;
-
float64:最大范围约为 1.8e308,可用常量 math.MaxFloat64 表示;
没有显式声明,默认 float64
fmt.Println(math.MaxFloat32)
fmt.Println(math.MaxFloat64)
如下

字符型
go 语言中的字符类型,分单字节字符(byte)、多字节字符(rune),都用单引号表示
-
单字节字符(byte):一个字节可表示的字符,Ascii 码表中的字符;
-
多字节字符(rune):多个字节表示的字符;
单字节字符,源码中就等于 uint8,可直接当作整数用于算数计算,如下
// 单字节字符,既是字符也是 uint8
var d byte = 'a'
fmt.Printf("%c %d\\n", d, d)
// 计算
d += 10
fmt.Println(d)
执行如下

看下源码

多字节字符,用于表示 ascii 码表之外的字符,如汉字、俄文等其他非英语国家的文字字符,用 rune 定义
// 多字节字符是 rune 类型,对应 Unicode 码
var zhongguo rune = '中'
fmt.Printf("%c %d\\n", zhongguo, zhongguo)
如下

字符串类型
字符串类型,双引号表示,如下
var zhongguo string = "中国"
fmt.Println(zhongguo)
需要注意以下转义字符
-
\\t:空一个制表符号的宽度;
-
\\n:回车符;
-
":双引号;
-
\\r:清空前面的字符串,将当前位置移到行首;
-
\\:反斜杠转义;
如下
fmt.Println("xiao\\the")
fmt.Println("xiao\\nhe")
fmt.Println("xiao\\"he\\"")
fmt.Println("xiao\\rhe")
fmt.Println("\\\\xiao\\\\he")
执行如下

多行字符串,用反引号表示(`),如下,多行字符串中,转义字符不生效,会原样输出
var name string = `这是
一段
多\\t\\t\\t\\t行
字符\\n\\n\\n\\串`
fmt.Println(name)
如下

布尔类型
布尔(boolean)类型,只有两个备选值,true 或 false
需要注意的是,
-
布尔类型默认值为 false;
-
Go 语言中不允许将整型强制转为布尔类型;
-
布尔类型不能参与算术运算;
如下
var b bool = true
var f bool
fmt.Println(b, f)
执行如下

补充
对于以上基本数据类型,只声明不赋值的情况下,对应的值如下,
-
int:0;
-
bool:false;
-
string:“”(空串);
var i int
var b bool
var s string
fmt.Printf("%T %#v\\n", i, i)
fmt.Printf("%T %#v\\n", b, b)
fmt.Printf("%T %#v\\n", s, s)
执行如下

除以上五种基本数据类型外,还有一种复数类型,如下,
var f1 complex64 = 1 + 2i
fmt.Println(f1)
var f2 complex128 = 1 + 2i
fmt.Println(f2)
参考
B站:8小时带你快速入门Go语言




