4、数据类型

发布时间 2023-03-26 19:19:52作者: 我也有梦想呀

1.基本数据类型

image

布尔类型bool
  • true
  • false
var b1 bool
	b1 = true
	fmt.Printf("%T,%t\n", b1, b1)

	b2 := false
	fmt.Printf("%T,%t\n", b2, b2)
数值类型
  • 整数
    • 有符号: 最高位表示符号位,0正数,1负数,其余位表示数值
      • int8:(-128 到 127)
      • int16:(-32768 到32767)
      • int32:(-2147483648 到 2147483647)
      • int64:(-9223372036854775808 到 9223372036854775807)
    • 无符号:所有的位表示数值
      • uint8:(0 到 255)
      • uint16:(0 到 65535)
      • uint32:(0到 4294967295)
      • uint64:(0到 18446744073709551615)
    • byte <=> uint8
    • rune <=> int32
      类型推断定义数值时,默认是int类型
  • 浮点:就是小数
    • float32
    • float64
  • 复数:complex
// i2 = 200
	// fmt.Println(i1)

	// var i3 int64 = 1000
	// GO语言中int 和 int64等,不是同一个类型
	// i1 = i3 // cannot use i3 (variable of type int64) as type int8 in assignment

	var i4 = 100
	fmt.Printf("%T,%d\n", i4, i4)

	var f1 float32
	f1 = 2.22
	var f2 float64
	f2 = 3.1415
	fmt.Printf("%T,%.1f\n", f1, f1)
	fmt.Printf("%T,%.3f\n", f2, f2)

	var f3 = 6.666
	fmt.Printf("%T,%f\n", f3, f3)

image

string类型(字符串)
  • 1.概念:多个byte的集合,理解为一个字符序列

  • 2.语法:使用双引号"abc"、"hello"、"A"也可以使用go

  • 3.编码问题
    计算机本质只识别0和1
    A: 65,B:66,C:67.a:97,b:98..

    ASCII(美国标准信息交换码)

    中国的编码表:加入了中文
    gbk,兼容ASCII

    Unicode编码表:
    号称统一了全世界UTF-8,UTF-16,UTF-32...

  • 4.转义字符:

    • A:有一些字符,有特殊的作用,可以转义为普通的字符X
    • B:有一些字符,就是一个普通的字符,转义后有特殊的作用
      • \n:换行
      • \t:制表符
/**
 * @author ly (个人博客:https://www.cnblogs.com/qbbit)
 * @date 2023/3/26  18:13
 * @tags 喜欢就去努力的争取
 */
package main

import "fmt"

func main() {
	var s1 string
	s1 = "zs"

	fmt.Printf("%T,%s\n", s1, s1)

	s2 := "go"
	fmt.Printf("%T,%s\n", s2, s2)

	s3 := "`zs`"
	fmt.Println(s3)

	s4 := `"helloworld"`
	fmt.Println(s4)

	s5 := "hello \n wor \t ld"
	fmt.Println(s5)
}

数据类型转换

语法格式:Type(value)

  • 常数: 在有需要的时候,会自动转型
  • 变量: 需要手动转型 T(V)
    注意点:兼容类型可以转换
/**
 * @author ly (个人博客:https://www.cnblogs.com/qbbit)
 * @date 2023/3/26  19:07
 * @tags 喜欢就去努力的争取
 */
package main

import "fmt"

func main() {

	var a int8
	a = 10

	var b int16
	b = 20

	f1 := 3.14
	f1 = float64(a)
	fmt.Println(f1, a, b)

	f2 := 6.66
	a = int8(f2)
	fmt.Println(a, f2)

}

2.符合数据类型

TODO......