前面我们写的程序中,用到的变量的类型都是整型,但是在我们GO语言中,还有很多其它的类型,
| ** | ** | ** | ** | ** |
|---|---|---|---|---|
| bool | 布尔类型 | 1 | false | 其值不为真即为假,不可以用数字代表true或false |
| byte | 字节型 | 1 | 0 | uint8别名 |
| int, uint | 整型 | - | 0 | 有符号32位或无符号64位 |
| int8 | 整型 | 1 | 0 | -128 ~ 127, |
| uint8 | 整型 | 1 | 0 | 0 ~ 255 |
| int16 | 整型 | 2 | 0 | -32768 ~ 32767, |
| uint16 | 整型 | 2 | 0 | 0 ~ 65535 |
| int32 | 整型 | 4 | 0 | -2147483648 到 |
2147483647 | | uint32 | 整型 | 4 | 0 | 0 到 4294967295(42亿) | | int64 | 整型 | 8 | 0 | -9223372036854775808到 92233720368547758070 | | uint64 | 整型 | 8 | 0 | 到 18446744073709551615(1844京) | | float32 | 浮点型 | 4 | 0.0 | 小数位精确到7位 | | float64 | 浮点型 | 8 | 0.0 | 小数位精确到15位 | | string | 字符串 | | “” | utf-8字符串 |
下面我们看一下几个非常重要的类型,其它类型随着课程的深入,后面会给大家讲解到。
1:布尔类型
在计算机中,我们用什么数据类型来表示一句话的对错,例如:在计算机中描述张三(20岁)比李四(18)小,这句话的结果?
布尔类型的变量取值要么是真(true),要么是假(false),用bool关键字来进行定义。示例如下:
//1.声明变量,没有初始化,默认值为Falsevar a1 boolfmt.Println("a1 = ", a1)a2 = truefmt.Println("a2 = ", a2)a3 =falsefmt.Println("a3 = ", a3)
指定格式的输出:
func main(){vavr b boolb = truefmt.Printf("b = %t", b)}
布尔类型主要用于后面讲解的条件判断,关于条件判断,我们在这里想一个生活中的案例,大家理解一下。
2:浮点型
有格式的输入与输出
func main(){//声明变量var f1 float32fmt.Sacn(&f1)fmt.Printf("f1 = ", f1)}
注意:
var f1 floatf1 =12f2 = 12.0 //如果不加小数点,f2会被推导成整数,而不是浮点型
3:字符类型
(1)字符基本输入与输出
所谓字符类型是用单引号括起来的单个字符,关于字符的定义使用如下:
func main (){//声明变量var ch bytech = 'a'fmt.Printf("%c\n", ch)}
输入一个字符,如下所示:
(1)
字符第二种输入与输出方式。
这里定义了,ch是一个字符类型,赋值却是一个整数97,打印的结果是小写字符’a’.
原因是:计算机不能直接存储字符类型,只能转成数字存储,但是为什么小写字符‘a’,对应的整数是97呢?因为,计算机是根据’ASCII’码来存储。(这里只是简单介绍ASCII)
注意强调:
问题,以下代码输出的结果是多少?
(2)
转义字符
字符除了我们常见的字符‘a’,字符’b’等等以外,还有一些特殊的字符,例如我们讲解的’\n’, 它的作用是什么?换行,不会在屏幕上输出具体的内容。这种字符我们称为转义字符(具有特殊含义),那么除了’\n’字符以外,还有哪些是我们以后编程中经常用到的转义字符呢?
\”:表示一个英文半角的双引号
\t:表示一个tab键的空格(可以用来对输出的内容进行排版)
\\:表示一个\(主要用在表示磁盘目录上,后面我们讲解文件操作时,经验要根据磁盘目录获取文件然后进行读取,写入等操作) <br />
4:字符串类型
用单引号括起来的单个字符是字符类型,用双引号括起来的字符是字符串类型。“a”是字符还是字符串呢?
下面是关于字符串的定义使用:
字符串输入:
5:字符与字符串区别
6:fmt输出输入
我们前面在输出与输入字符串类型,字符类型,整型等都指定了对应的格式化,那么go语言中还有哪些格式化呢?
| ** | ** |
|---|---|
| %% | 一个%字面量 |
| %b | 一个二进制整数值(基数为2),或者是一个(高级的)用科学计数法表示的指数为2的浮点数 |
| %c | 字符型。可以把输入的数字按照ASCII码相应转换为对应的字符 |
| %d | 一个十进制数值(基数为10) |
| %f | 以标准记数法表示的浮点数或者复数值 |
| %o | 一个以八进制表示的数字(基数为8) |
| %p | 以十六进制(基数为16)表示的一个值的地址,前缀为0x,字母使用小写的a-f表示 |
| %q | 使用Go语法以及必须时使用转义,以双引号括起来的字符串或者字节切片[]byte,或者是以单引号括起来的数字 |
| %s | 字符串。输出字符串中的字符直至字符串中的空字符(字符串以’\0‘结尾,这个’\0’即空字符) |
| %t | 以true或者false输出的布尔值 |
| %T | 使用Go语法输出的值的类型 |
| %x | 以十六进制表示的整型值(基数为十六),数字a-f使用小写表示 |
| %X | 以十六进制表示的整型值(基数为十六),数字A-F使用小写表示 |
大家目前先掌握该表格中,标注红色的内容。在红色内容中,我们没有用到的是%T,作用是输出值的类型,示例如下:
