go语言基础之基本数据类型

 视频学习地址:Go零基础入门_在线视频教程-CSDN程序员研修院

一. 基本类型总结

 二. 位,字节和字

  1. 定义: 位、字节和字都是描述计算机数据单元或储存单元的术语,一般指储存单元
  2. 位(bit)是最小的储存单元,可储存0或1,是计算机内存的基本构建块
  3. 字节(byte)是常用的计算机储存单位,1字节=8位,8位就有256(2的8次方)种0、1的组合,即可0~255的整数或一组字符
  4. 字(word)是设计计算机时给定的自然储存单位,不同的电脑字长可能不同,对于8位的微型计算机,字长就是8位,32位计算机,1字=32位=4字节,64位计算机,1字=64位=8字节,现在的个人计算机通常都是64位,即 1字=64位。计算机字长越大,其数据转移就越快,允许的内存访问也更多。
  5. 8bit(位)=1Byte(字节)

1024Byte(字节)=1KB

1024KB=1MB

1024MB=1GB

1024GB=1TB

  1. 位与字节图示

 三. 整型

int8、int16、int32、int64。在 内存中分别用 1、2、4、8 个字节来表达

  1. 整形类型

具体类型

取值范围

int8

-128到127

uint8

0到255

int16

-32768到32767

uint16

0到65535

int32

-2147483648到2147483647

uint32

0到4294967295

int64

-9223372036854775808到9223372036854775807

uint64

0到18446744073709551615

uint

与操作系统有关 32位的系统是uint32, 64位的是uint64

int

与操作系统有关 32位的系统是int32, 64位的是int64

var a int8
a = 129 // '129' (类型 untyped int) 不能由类型 int8 表示

四.  浮点型

  1. float类型分为float32float64两种类型,这两种浮点型数据格式遵循 IEEE 754 标准。
  2. 单精度浮点数占用4个字节(32位)存储空间来存储一个浮点数。而双精度浮点数使用 8个字节(64位)存储空间来存储一个浮点数。
  3. 一个float32类型的浮点数可以提供大约6个十进制数的精度,而float64则可以提供约15或16个十进制数的精度
  4. 浮点类型默认声明为float64。
// 单精度浮点型
var f1 float32
f1 = 1.1254869873248965478
fmt.Println(f1, reflect.TypeOf(f1)) // 1.125487 float32

// 双精度浮点型
var f2 float64
f2 = 1.1254869873248965478
fmt.Println(f2, reflect.TypeOf(f2)) // 1.1254869873248965 float64

// 默认64
var f3 = 1.1254869873248965478
fmt.Println(f3, reflect.TypeOf(f2)) // 1.1254869873248965 float64
  1. 科学计数表示
var f1 = 2e8
fmt.Println(f1, reflect.TypeOf(f1))
	
var f2 = 2e-1
fmt.Println(f2, reflect.TypeOf(f2))

五.  布尔类型

  1. 定义:布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。
var b bool
b = true
b = false
fmt.Println(b)
fmt.Println(1 == 1)
fmt.Println(2 < 1)

六.  字符串类型

字符

  1. Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。
// 字符
var b byte
b = 'a'
fmt.Println(b) // 输出的是 ASCII码

// 字符本质是一个数字, 可以进行加减乘除
fmt.Println(b+1, reflect.TypeOf(b+1))

字符串

  1. 字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
// 字符串
var str string
str = "hello go"
fmt.Println(str)
  1. 字符串在内存中是一段连续存储空间

  1. 当你用 字符串[索引] 时 取到得到是字符 需要用 string(字符串[索引]) 转为 字符串
// 字符串
var str string
str = "hello go"
fmt.Println(string(str[0])) // h
  1. 字符串转为字符
str1 := []rune(str)
str1[0] = 'k'
fmt.Println(str, string(str1))
  1. 带中文的字符串
var str2 = "你好啊"
// 截取有中文的字符串
fmt.Println(string([]rune(str2)[0]))
// len()获得的是 byte 字节的数量 一个中文占用3个字节
fmt.Println(len(str2))
// 有中文时 取长度
fmt.Println(utf8.RuneCountInString(str2))
fmt.Println(len([]rune(str2)))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值