go语言基础语法01天-3

5,基础数据类型

前面我们写的程序中,用到的变量的类型都是整型,但是在我们GO语言中,还有很多其它的类型:

类型名称长度零值说明
bool布尔类型1false其值不为真即为假,不可以用数字代表true或false
byte字节型10uint8别名
int,uint整型-0有符号32位或无符号64位
int8整型10-128~127
uint8整型100~255
int16整形40-32768-32767
int32整型40-2147483648 到 2147483647
uint32整型400 到 4294967295(42亿)
int64整型80-9223372036854775808到 92233720368547758070
uint64整型80到 18446744073709551615(1844京)
float32浮点型40.0小数位精确到7位
float64浮点型80.0小数位精确到15位
string字符串 ""utf-8字符串

下面我们看一下几个非常重要的类型:

5.1 布尔类型

在计算机中,我们用什么数据类型来表示一句话的对错,例如:在计算机中描述张三(20岁)比李四(18)小,这句话的结果? 布尔类型的变量取值要么是真(true),要么是假(false),用bool关键字来进行定义。示例如下:

package main

import "fmt"

func main(){
    //1,声明变量,没有初始化,默认值是false
	var a bool
	fmt.Println("a0 = ",a)
}

输出如下:
a0 =  false 
package main

import "fmt"

func main(){
    //2,自动推导类型
	var b = false
	fmt.Println("b = ",b)
	c := false
	fmt.Println("c = ",c)
}

输出:

b =  false
c =  false

按照指定格式输出:

package main

import "fmt"
func main(){
    var b bool
    b = true
    fmt.Printf("b=%t",b)
}

输出如下:

b=true

布尔类型主要用于后面讲解的条件判断,关于条件判断,我们在这里先举一个生活中的案例,大家可以理解一下:

 

5.2 浮点型

package main

import "fmt"
func main(){
//声明变量
    var f1 float32
    f1 = 3.14
    fmt.Println("f1 = ",f1)
}

输出:

f1 =  3.14
package main

import "fmt"
func main(){
    //自动推导类型
    f2 := 3.14
    fmt.Println("f2 = ",f2)
}

输出:

f2 =  3.14

有格式的输入输出:

package main

import "fmt"
func main(){
    //声明变量
    var f1 float32
    fmt.Printf("请输入数值")
    fmt.Scanf("%f",&f1)
    fmt.Printf("f1=%f",f1)

}

输出:

请输入数值 1.1
f1=1.100000

5.3字符类型

5.3.1 字符基本输入输出

package main

import "fmt"
func main(){
    //声明变量
    var ch byte //声明字符类型
    ch = 'a' //单引号,字符
    fmt.Printf("%c",ch)

}

输出:
a

输入一个字符,如下:

package main

import "fmt"
func main(){
    //声明变量
    var ch byte //声明字符类型
    fmt.Println("请输入字符")
    fmt.Scanf("%c",&ch)
    fmt.Printf("%c",ch)

5.3.2 字符第二种输入与输出类型

package main

import "fmt"
func main(){
    //声明变量
    var ch byte //声明字符类型
    ch = 97
    fmt.Printf("ch=%c",ch)
}

输出:
a  # 97对应的是字符a

这里定义了,ch是一个字符类型,赋值却是一个整数97,打印的结果是小写字符’a’.

原因是:计算机不能直接存储字符类型,只能转成数字存储,但是为什么小写字符‘a’,对应的整数是97呢?因为,计算机是根据’ASCII’码来存储。(这里只是简单介绍ASCII)

 

注意:输出fmt.Printf("ch=%c",ch)必须为c%,如果为d%,还是整数

5.3.3 转义字符

字符除了我们常见的字符'a'',字符'b'等等以外,还有一些特殊的字符,例如我们讲解的'\n'', 它的作用是什么?换行,不会在屏幕上输出具体的内容。这种字符我们称为转义字符(具有特殊含义),那么除了'\n'字符以外,还有哪些是我们以后编程中经常用到的转义字符呢?

5.3.3.1 \

\":表示一个英文半角的双引号,转义字符
package main

import "fmt"

func main(){
    fmt.Printf("学习\"区块链\"技术")
}

输出:
学习"区块链"技术

5.3.3.2 \t

\t:表示一个tab键的空格(可以用来对输出的内容进行排版)

package main

import "fmt"

func main(){
    fmt.Printf("张三\t 李四\t 王五\t")
}

输出:
张三	 李四	 王五	

5.3.3.3 \

\\:表示一个\(主要用在表示磁盘目录上,后面我们讲解文件操作时,经验要根据磁盘目录获取文件然后进行读取,写入等操作)

对 \进行转义
package main

import "fmt"

func main(){
    fmt.Printf("C:\\Users\\Admin\\go\\study")
}

输出:
C:\Users\Admin\go\study

5.4

用单引号括起来的单个字符是字符类型,用双引号括起来的字符是字符串类型。“a”是字符还是字符串呢? 下面是关于字符串的定义使用:

package main

import "fmt"

func main(){
    var str1 string //声明变量
    str1 = "abc"
    fmt.Println("str1 =",str1)
    fmt.Printf("str1=%s",str1)
}

输出:
str1 = abc
str1=abc

5.5 字符与字符串的区别

%s:字符串
%c:字符
%d:整数
package main

import  "fmt"

func main(){
    var ch byte
    var str string

    //字符
    //1、单引号
    //2,字符,往往都只有一个字符,转义字符除外’\n‘
    ch = 'a'
    fmt.Println("ch =",ch)

    //字符串
    //1,双引号
    //2,字符串由一个或多个字符组成
    //3,字符串都是隐藏了一个结束符,'\o'
    str = "a" //由'a'和'\0'组成一个字符串
    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])


}

输出:
ch = 97
str = a
str长度是 5
str[0] = h,str[1] = e

5.6 fmt输入输出

我们前面在输出与输入字符串类型,字符类型,整型等都指定了对应的格式化,那么go语言中还有哪些格式化呢?

格式含义
%%一个%字面量
%b一个二进制整数值(基数为2),或者是一个(高级的)用科学计数法表示的指数为2的浮点数
%c字符型。可以把输入的数字按照ASCII码相应转换为对应的字符
%d一个十进制数值(基数为10)
%o一个以八进制表示的数字(基数为8)
%p以十六进制(基数为16)表示的一个值的地址,前缀为0x,字母使用小写的a-f表示
%q使用Go语法以及必须时使用转义,以双引号括起来的字符串或者字节切片[]byte,或者是以单引号括起来的数字
%s字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符)
%trow 2 col 2
%T使用Go语法输出的值的类型
%x以十六进制表示的整型值(基数为十六),数字a-f使用小写表示
%X以十六进制表示的整型值(基数为十六),数字A-F使用小写表示

%T,作用是输出值的类型,示例如下:

package main

import "fmt"

func main(){
    var b bool
    b = true
    fmt.Printf("b变量的类型是%T",b)
}

输出:
b变量的类型是bool
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值