【Datawhale】Go语言组队学习task2.数据类型、关键字、标识符

1.1 数据类型

1.1.1 按类别
  • 布尔型:只可以是常量 true 或者 false。若不指定初始化值,默认false。
eg:
var b bool = true
或
b := false 
  • 数字类型:整型和浮点型。

  • 位的运算采用补码字符串类型:字符串就是一串固定长度的字符连接起来的字符序列,Go 的字符串是由单个字节连接起来。

  • Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本(它编码的字符类型为rune)

  • 复数:complex128(64 位实数和虚数)和 complex64(32 位实数和虚数),其中 complex128 为复数的默认类型。
    注:

  1. 复数的值由三部分组成 RE + IMi,其中 RE 是实数部分,IM 是虚数部分,RE 和 IM 均为 float 类型,而最后的 i 是虚数单位。
var name complex128 = complex(x, y)
或者
z := complex(x, y)
x = real(z)
y = imag(z)
  1. 复数也可以用==和!=进行相等比较,只有两个复数的实部和虚部都相等的时候它们才是相等的
1.1.2 派生类型
  • 指针类型(Pointer)

    指针的声明类型:*T,支持多级指针**T。通过在变量名前添加&来获取变量地址

  • 数组类型

    类型名:[n]elementType,其中,n是数组长度,elementType是数组元素类型

  • 结构化类型(struct)

    由多个不同类型元素组合而成。其中有两层含义:

    1. struct结构中的类型可以是任意类型
    2. struct的存储空间是连续的,其字段按照声明时的顺序存放

    struct有两种形式:1. struct类型字面量 2. 使用type声明的自定义struct类型

  • Channel 类型

  • 函数类型

  • 切片类型(slice)

    它是个变长数组,其数据结构中有指向数组的指针。

    type slice struct{
        array unsafe.Pointer
        len int
        cap int
    }
    

    它指向底层数组的指针、切片的元素数量和底层数组的容量

  • 接口类型(interface)

  • Map 类型

    map类型的格式:map[K]T,K可以是任意可进行比较的类型,T是值类型。

1.1.3 基于架构
  1. 整型,同时提供了四种有符号整型,分别对应8、16、32、64bit(二进制)的有符号整数,与此对应四种无符号的整数类型
  • Uint8无符号 8 位整型 (0 到 255)
  • Unit16
  • Unit32
  • Unit64
  • int8
  • int16
  • int32
  • int64
  1. 浮点型:
  • float32
  • float64
  • complex64(实数虚数)
  • complex128
  1. 其他:
  • byte
  • rune
  • uint
  • int
  • uintptr(无符号整型,存放一个指针)

注:

  1. 表示 Unicode 字符的 rune 类型和 int32 类型是等价的,通常用于表示一个 Unicode 码点,是等价的。
  2. byte 和 uint8 也是等价类型,byte 类型一般用于强调数值是一个原始的数据而不是一个小的整数。
  3. 无符号的整数类型 uintptr,它没有指定具体的 bit 大小但是足以容纳指针。只有在底层编程时才需要,特别是Go语言和C语言函数库或操作系统接口相交互的地方。
  4. 有符号整数采用 2 的补码形式表示,也就是最高 bit 位用来表示符号位,一个 n-bit 的有符号数的取值范围是从 -2(n-1) 到 2(n-1)-1。无符号整数的所有 bit 位都用于表示非负数,取值范围是 0 到 2n-1。
  5. 常量 math.MaxFloat32 表示 float32 能取到的最大数值,大约是 3.4e38。
  6. 常量 math.MaxFloat64 表示 float64 能取到的最大数值,大约是 1.8e308。
  7. float32 和 float64 能表示的最小值分别为 1.4e-45 和 4.9e-324。
  8. 浮点数在声明的时候可以只写整数部分或者小数部分。
const e = .71828 // 0.71828
const f = 1.     // 1
  1. 很小或很大的数最好用科学计数法书写,通过 e 或 E 来指定指数部分
const Avogadro = 6.02214129e23  // 阿伏伽德罗常数
const Planck   = 6.62606957e-34 // 普朗克常数

1.2 关键字

1.2.1 25个关键字或保留字

break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

25个关键字按照功能又可以分为三个部分:

  • package //定义包名的关键字

  • import //导入包名关键字

  • const //常量声明关键字

  • var //变量声明关键字

  • func //函数定义关键字

  • defer //延迟执行关键字

  • go //并发语法糖关键字

  • return //函数返回关键字

声明复合数据结构的4个关键字:

  • struct //定义结构类型关键字
  • interface //定义接口类型关键字
  • map //声明或创建map类型关键字
  • chan //声明或创建通道类型关键字

控制程序结构顺序的13个关键字:

  • if else //if else语句关键字
  • for range break continue //for循环使用的关键字
  • switch select type case default fallthrough //switch和select语句使用的关键字
  • goto //goto跳转语句关键字
1.2.2 36 个预定义标识符

append bool byte cap close complex complex64 complex128 uint16
copy false float32 float64 imag int int8 int16 uint32
int32 int64 iota len make new nil panic uint64
print println real recover string true uint uint8 uintptr

内置函数

make new len cap append copy delete panic recover close complex real image Print Println

20个预声明数据类型标识符

  • 数值

    • 整型: byte int int8 int16 int32 int64

      ​ uint uint8 uint16 uint32 uintptr

    • 浮点型: float32 float64

    • 复数型:complex64 complex128

  • 字符和字符串型:rune string

  • 接口型:error

  • 布尔型:bool

1.2.3 知识点
  • 程序一般由关键字、常量、变量、运算符、类型和函数组成。
  • 程序中可能会使用到这些分隔符:括号 (),中括号 [] 和大括号 {}
  • 程序中可能会使用到这些标点符号:.、,、;、: 和 …。

1.3 标识符

标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(A~ Z和a~ z)数字(0~9)、下划线“_”组成的序列,但是第一个字符必须是字母或下划线而不能是数字。

Go语言的标识符构成规则开头第一个字符必须是字母或下划线,后面可跟任意多个字符、数字或下划线,并且区分大小写,Unicode字符也可作标识符构成,但不推荐使用。

//下方都是合法标识符
aa 
_aa
aa911
_aa911
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值