课程名称: Go开发工程师全新版
课程章节: 4-1 数值、浮点数和字符类型
课程讲师: bobby
课程内容:
-
布尔类型:bool 只能存放 true 和 false,表示 真(true)、假(false) 的意思
-
数值类型
-
整数:int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64
-
浮点数:float32、flota64
-
复数: complex64(32 位实数和虚数)、complex128(64 位实数和虚数)
使用 complex(x,y) 为复数赋值,x、y 分别表示构成该复数的两个 float64 类型的数值,x 为实部,y 为虚部。
var name complex128 = complex(1, 2)
real(z):go 内置函数,获取复数的实部,也就是 x
imag(z) :go 内置函数,获取复数的虚部,也就是 y。
-
byte 字节类型:本质是 int8,存放字节
-
rune 字节类型:本质是 int32,存放字节
-
-
字符串类型:string
布尔类型(bool)
布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true
package main
import "fmt"
func main() {
var ok bool
ok = true
ok = false
ok = '123' // 错误,只能是 true 和 false
}
数值型
-
整数型
可以简单讲解一下二进制和位数的关系,以及 int 和 uint 的关系
- int:动态类型,根据操作系统来定义,如果操作系统是32,他就是 int32
-
int8:有符号 8 位整型 (-128 到 127) 长度:8bit
-
int16: 有符号 16 位整型 (-32768 到 32767)
-
int32: 有符号 32 位整型 (-2147483648 到 2147483647)
-
int64: 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
-
uint:动态类型,根据操作系统来定义,如果操作系统是32,他就是 uint32
-
uint8: 无符号 8 位整型 (0 到 255) 8位都用于表示数值:
-
uint16: 无符号 16 位整型 (0 到 65535)
-
uint32: 无符号 32 位整型 (0 到 4294967295)
-
uint64: 无符号 64 位整型 (0 到 18446744073709551615)
-
浮点型
-
float32: 32位浮点型数,大约是 3.4e38
-
float64: 64位浮点型数,大约是 1.8e308
-
其他
-
byte 等于 uint8,主要用于存放英文字符,字符本质是一个数字
package main import "fmt" func main() { // 主要用于存放英文字符,不能存放中文, // 因为中文的字节超过 int8 的长度也就(-128 到 127) var c byte c = 'a' fmt.Printf(c) fmt.Printf("c=%c", c) }
-
rune 等于 int32,主要用于存放字符,存放中文字符使用它,字符本质是一个数字
package main import "fmt" func main() { // 主要用于存放中英文字符 var c rune c = '慕' fmt.Printf(c) fmt.Printf("c=%c", c) }
字符类型
Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用 byte 来保存。
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。也就是说对于传统的字符串是由字符组成的,而Go的字符串不同,它是由字节组成的。
package main
import (
"fmt"
)
func main() {
var a byte
a = 'a'
//输出ascii对应码值 。。 这里说明一下什么是ascii码
fmt.Println(a)
fmt.Printf("a=%c", a)
}
字符常量 只能使用 单引号 括起来,例如:var a byte = 'a'
var a int = 'a'
package main
import (
"fmt"
)
func main() {
var a byte
a = "a"
//输出ascii对应码值 。。 这里说明一下什么是ascii码
fmt.Println(a)
fmt.Printf("a=%c", a)
}
代码块
字符本质是一个数字, 可以进行加减乘除
package main
import (
"fmt"
"reflect"
)
func main() {
a := 'a'
//这里注意一下 1. a+1可以和数字计算 2.a+1的类型是32 3. int类型可以直接变成字符
fmt.Println(reflect.TypeOf(a+1))
fmt.Printf("a+1=%c", a+1)
}
代码块
字符串(string)
字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
package main
import "fmt"
func main() {
var name string
name = "i am bobby"
fmt.Println(name)
}
课程收获:
了解基础数据类型
共同学习,写下你的评论
评论加载中...
作者其他优质文章