go 学习笔记3_go基础之数据类型

fmt占位符

  • %T 查看类型
  • %v 查看数值 value值 万能展示
  • %#v 查看数值 加描述符 字符串加""
  • %b 二进制展示
  • %d 十进制展示
  • %o 八进制
  • %x 十六进制
  • %s 字符串
  • %f 浮点数
  • %c 字符

整型数据

int8 int16 int32 int64 uint8 uint16 uint32 uint64

  • uint 32位系统是uint32 64位系统uint64
  • int 32位系统是int32 64位系统是int64
  • uintptr 无符号整型 用于存放一个指针

进制 表示

  • 无法直接设置二进制数值 用%b 打印出来
  • 十进制日常输入数值表示十进制 %d 打印出来
  • 八进制 0开头的数值表示8进制数据 %o 打印出来
  • 16进制数据 0x开头数据 %x打印出来
  • 查看数据类型%T
  • 设置指定类型 var = int8(20)设置 int8型
数字字面量语法
Go1.13版本之后引入了数字字面量语法,这样便于开发者以二进制、八进制或十六进制浮点数的格式定义数字,例如:

v := 0b00101101, 代表二进制的 101101,相当于十进制的 45。 v := 0o377,代表八进制的 377,相当于十
进制的 255。  而且还允许我们用 _ 来分隔数字,比如说:v := 123_456 等于 123456`0x十六进制整数部分.十六进制小数部分p指数` 看上去和科学计数法很像,事实上也就是把e换成了p,指数计算
从10变为了2。另外因为是每161,所以"0x0.1p0"看上去像0.1,然而它表示的是1/16,0.0625
v1 := 0b00101101
v2 := 0o777
v3 := 89
v4 := 0xFF
v5 := 0x0.1p-2
v6 := 0x0.1p2
fmt.Println(v1, v2, v3, v4, v5, v6)
//结果 45 511 89 255 0.015625 0.25

浮点数

float32 和float64 两种类型

  • 默认浮点数值位float64类型
  • float32类型 不能直接赋值给float64类型

布尔值

  • 布尔类型默认位flase
  • go语言中不允许将整型强制转换位布尔型
  • 布尔型无法参与数值运算,也无法与其他类型进行转换

字符串

go语言里面的字符串内容使用utf8 编码 字符串的值位""双引号中的内容,可以在go语言的源码中直接添加非ascii码字符,如 中文 是 :=“中国”

  • Go语言中字符串是用双引号包裹的!!!
  • Go语言中单引号包裹的是字符!!!
  • 多行字符串 用反引号 ecs下面哪个符号 英文情况下"`"
  • 用反引号 打印路径等不用使用转义符
// 字符串
s := "Hello 沙河"
// 单独的字母、汉字、符号表示一个字符
c1 := 'h'
c2 := '1'
c3 := '沙'
// 字节: 1字节=8Bit(8个二进制位)
// 1个字母'A'=1个字节
// 1个utf8编码的汉字'沙'= 一般占3个字节

字符串的常用操作
常用操作

字符

go语言有两种字符,byte 和rune

  • byte 类型和其他语言一样 都是uint8数据类型 代表ascii的一个字符
  • rune 类型 是int32类型 用来处理 unicode 由一个或者多个byte组成
  • 使用rune类型处理Unicode 文本更为方便
  • 使用byte处理 进行默认字符串处理,性能和扩展都有照顾
  • 字符串地城是byte数组,可以和[]byte类型相互转换。
  • 字符串是不能修改的 字符串是由byte字节组成
	a := "好"
	b := '好'
	c := byte('a')
	fmt.Printf("a:%T %v,b:%T,c:%T\n", a, b, b, c)
//a:string 22909,b:int32,c:uint8

修改字符串

  • 修改字符串要先转换成[]byte或[]rune,完成后在转换为string
// 强制类型转换
func changeString() {
	s1 := "hello"
	byteS1 := []byte(s1)
	byteS1[0] = 'H'
	fmt.Println(string(byteS1))
	
	s2 := "赤橙黄绿青蓝紫"
	runeS2 := []rune(s2)
	runeS2[0] = '红'
	fmt.Println(string(runeS2))
}
//Hello
//红橙黄绿青蓝紫

类型转换

  • go语言只有强制类型转换,没有隐式类型转换,该语法只能在两个类型之间支持相互转换的时候使用。
  • 表达式 : T(变量or表达式)
  • 比如 c := byte(‘a’) 打印类型c 就是uint8 不转换是int32
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值