4.Go语言基本类型

2018-10-04  本文已影响0人  kukela

基本类型

  1. 布尔型:bool
    1. 长度:1位
    2. 取值范围:true - false
    3. 注意事项:不可以用数字表示
  2. 整形:int
    1. 根据平台不同可以为32或4位
    2. 细分类型:int8、int16、int32、int64
    3. 取值范围:-128 ~ 127、-32768 ~ 32767、-2^32 / 2 ~ 2^32 / 2 - 1、-2^64 / 2 ~ 2^64 / 2 - 1
  3. 无符号整形: uint
    1. 根据平台不同可以为32或4位
    2. 细分类型:uint8、uint16、uint32、uint64
    3. 取值范围:0 ~ 255、0 ~ 65535、0 ~ 2^33 - 1、0 ~ 2^65 - 1
  4. 字节型:byte(uint8的别名)
  5. 浮点型:float32 / float64
    1. 长度:4/8字节
    2. 小数位:精确到7/15小数位
  6. 复数型:complex64/complex128
    1. 长度:8/16字节
  7. 指针型:uintptr
    1. 足够保存指针的32或64位整形
  8. 其他值类型:
    1. 数组(array)
    2. 结构(struct)
    3. 字符串(string)
  9. 引用类型(非传统引用):
    1. 切片(slice)
    2. 类哈希表(map)
    3. 管道(chan)
  10. 接口型(interface)
  11. 函数型(func)

类型零值

零值并不等价于空值(NULL),是指在变量被声明为某种类型之后自动获得的默认值。
int -> 0
bool -> false
float64 -> 0.0
string -> ""(空字符串)
结构 -> 空结构
引用类型 -> nil(空指针)

类型别名

  1. 类型别名可以为某个类型赋予新的合法名称
  2. 类型别名并不是单纯的重命名或指向,而是用源类型作为底层类型,定义了一个全新的类型
  3. 新类型与源类型之间需要类型转换,属于相互兼容的类型
  4. 新类型可以拥有属于自己的一套方法
  5. 新类型不会继承源类型的方法,而需要进行类型转换后才可以调用
示例:
package main

import "fmt"

type 别名 bool

func main() {
    var a 别名
    fmt.Println(a)
}
上一篇下一篇

猜你喜欢

热点阅读