Go 基本类型

  1. 布尔型 bool
    -长度 1字节
    -取值范围 true false
    -主要事项 不可使用0/1代替true/false

  2. 整型 int/uint
    -根据运行平台肯为32或64位

  3. 8位整型 int8/uint8
    -长度 1字节
    -取值范围 -128~127 0

  4. 字节型 byte( uint8别名 )

  5. 16位整型 int16/uint16
    -长度 2字节
    -取值范围 -32758~32767 0~65535

  6. 32位整型 int16/uint16
    -长度 4字节
    -取值范围 -2^32/2~2^32/2-1 0~2^32-1

  7. 64位整型 int16/uint16
    -长度 8字节
    -取值范围 -2^64/2~2^64/2-1 0~2^64-1

  8. 浮点型 float32/float64
    -长度 4/8字节
    -小数位 精确的7/15小数位

  9. 复数 complex64/complex128

  10. 足够保存指针的32位或64位整数型 uintptr

  11. 其他值类型
    -array, struct, string

  12. 引用类型
    -slice, map, chan

  13. 接口类型 interface

  14. 函数类型 func

类型零值

类型 零值
int 0
bool false
[]int []
string
[]bool false
byte 0

检查方法

使用 math 包中 MaxInt32( int32位最大值 ) 等函数检查是否溢出

类型别名

此处仅为演示,实际项目中勿使用中文

  1. type (
  2. byte int8
  3. rune int32
  4. 文本 string
  5. )
  6. //实际就是 var b string
  7. var b 文本

单个变量的声明与赋值

-变量的声明格式 var <变量名称> <变量类型>
-变量的赋值格式 <变量名称> = <表达式> -变量同时声明赋值 var <变量名称> <变量类型> = <表达式>
-变量自动推断声明赋值 <变量名称> := <表达式>

  1. //声明
  2. var a int
  3. //辅助
  4. a = 100
  5. //声明并辅助
  6. var b int = 100
  7. //自动推断声明赋值
  8. c := 100

多个变量的声明有赋值

-全局变量的声明可使用 var() 的方法简写
-全局变量的声明不可以省略 var ,但可以使用并行方式
-全局变量都可以使用类型推断
-局部变量不可以使用 var() 的方式简写,只能使用并行方式

  1. //使用 var()
  2. var (
  3. aaa = "hello"
  4. bbb = "world"
  5. )
  6. //并行方式
  7. var a, b, c, d int = 1, 2, 3, 4
  8. //并行自动推断
  9. a, b, c, d := 1, 2, 3, 4

空白符号 _

  1. a, _, c, d := 1, 2, 3, 4

多用于函数返回值

变量的类型转换

-Go中不存在隐式转换,所以类型转换必须显示声明 -转化只能发生在两种相互兼容的类型之间 -类型转换格式 <ValueA> [:] = <TypeOfValueA>(<ValueB>)

  1. package main
  2. import (
  3. "fmt"
  4. "strconv"
  5. )
  6. func main() {
  7. var a float32 = 100.1
  8. fmt.Println(a) //100.1
  9. b := int(a)
  10. fmt.Println(b) //100
  11. var s = 65
  12. //"A",是ASCII编码的65对应字符
  13. p := string(s)
  14. //若想得到string 65,使用 strconv 包
  15. //string 65
  16. k := strconv.Itoa(s)
  17. //int 65
  18. m := strconv.Atoi(k)
  19. }