一、基础数据类型
1. 布尔类型
在计算机中,我们用什么数据类型来表示一句话的对错,例如:在计算机中描述张三(20)岁比李四(18)小,这句话的结构?布尔类型的变量取值要么是真(true)、要么是假(false)用bool关键字来进行定义,示例如下:
func main() {
fmt.Println("测试布尔类型")
// 1. 声明变量,没有初始化,默认值为false
var a bool
fmt.Println("a0=:", a)
a = true
fmt.Println("a = ", a)
// 2. 自动推导类型
var b = false
fmt.Println("b = ", b)
c := false
fmt.Println("c = ", c)
}
2. 浮点类型
func main() {
fmt.Println("测试浮点型")
// 1. 声明变量
var f1 float32
f1 = 3.14
fmt.Println("f1 = ", f1)
// 2. 自动推导类型
f2 := 3.14
fmt.Println("f2 = ", f2)
// %f 占位符默认保留六位小数(.3 保留3位小数会对第四位四舍五入 .数字就是想要保留的位数,不足位数的补0)
fmt.Printf("%.3f\n", f2)
}
3. 字符类型
字符基本输入与输出
所谓字符类型是用单引号括起来的单个字符,关于字符的定义使用如下:
func main() {
fmt.Println("测试字符类型")
var ch byte // 声明字符类型
ch = 'a'
fmt.Printf("%c", ch)
}
4. 字符串类型
用单引号括起来的单个字符是字符类型,用双引号括起来的字符是字符串类型。
下面关于字符串的定义使用:
func main() {
fmt.Println("测试字符串类型")
// 声明变量
var str1 string
str1 = "abc"
fmt.Println("str1 = ", str1)
fmt.Printf("str1=%s", str1)
}
5. 字符与字符串的区别
func main() {
fmt.Println("测试字符与字符串的区别")
var ch byte
var str string
// 字符
// 1. 单引号
// 2. 字符,往往只有一个字符,转义字符除外\n\r
ch = 'a'
fmt.Println("ch =", ch)
// 字符串
// 1. 双引号
// 2. 字符串有1个或多个字符组成
// 3. 字符串都是隐藏了一个结束符号 '\0'
str = "a"
fmt.Println("str = ", str)
str = "hello"
// 测试字符串有多少字符组成
fmt.Println("str长度是:", len(str)) // 打印字符串的长度(当然,中文除外)
// 只想操作字符串的某个字符,从0开始操作
fmt.Printf("str[0] = %c, str[1] = %c\n", str[0], str[1])
}
6. fmt包的格式化输出输入
格式 | 含义 |
---|---|
%% | 一个%字面量 |
%b | 一个二进制整数值(基数为2),或者是一个(高级的)用科学计数法表示的指数为2的浮点数 |
%c | 字符型。可以把输入的数字按照ASCII码相应转换为对应的字符 |
%d | 一个十进制数值(基数为10) |
%e | 以科学记数法e表示的浮点数或者复数值 |
%E | 以科学记数法E表示的浮点数或者复数值 |
%f | 以标准记数法表示的浮点数或者复数值 |
%g | 以%e或者%f表示的浮点数或者复数,任何一个都以最为紧凑的方式输出 |
%G | 以%E或者%f表示的浮点数或者复数,任何一个都以最为紧凑的方式输出 |
%o | 一个以八进制表示的数字(基数为8) |
%p | 以十六进制(基数为16)表示的一个值的地址,前缀为0x,字母使用小写的a-f表示 |
%q | 使用Go语法以及必须时使用转义,以双引号括起来的字符串或者字节切片[]byte,或者是以单引号括起来的数字 |
%s | 字符串。输出字符串中的字符直至字符串中的空字符(字符串以’\0‘结尾,这个’\0’即空字符) |
%t | 以true或者false输出的布尔值 |
%T | 使用Go语法输出的值的类型 |
%U | 一个用Unicode表示法表示的整型码点,默认值为4个数字字符 |
%v | 使用默认格式输出的内置或者自定义类型的值,或者是使用其类型的String()方式输出的自定义值,如果该方法存在的话 |
%x | 以十六进制表示的整型值(基数为十六),数字a-f使用小写表示 |
%X | 以十六进制表示的整型值(基数为十六),数字A-F使用小写表示 |
二、常量
1. 常量定义使用
在讲解常量之前,我们要先简单说一下变量,变量是用来存储数据,并且变量里面存储的值是可以在成功运行时随时变化的(而常量是定义后不可修改的),例如如下案例:
func main() {
var number int
number = 10
number = 20
fmt.Println("number = ", number)
}
最终输出的是20,也就是,后者从值的数据会覆盖前者的值。
但是,常量里面的值确定好后,后面是不允许修改的,下面看一下关于常量的定义使用
func main() {
// 变量:程序运行期间,可以改变的量,变量声明关键字var
// 常量:程序运行期间,不可改变的量,常量声明关键字需要const(常量一旦定义,就不允许修改)
const a int = 10
// 这里赋值a常量为int类型 值为10
// 如这里在从新进行赋值,会报错
// err a = 20
fmt.Println("a = ", a)
// 使用自动推导类型 注意:常量自动推导类型没有 :=
const b = 11.2
fmt.Println("b = ", b)
}
常量的命名规范与变量命名规范一致。
什么场景下使用常量呢?
在程序开发中,我们用常量存储一致不会发生变化的数据,例如:pai、身份证号、一些枚举变量不会改变的。