Skip to content

Latest commit

 

History

History
134 lines (104 loc) · 2.99 KB

02.类型与变量.md

File metadata and controls

134 lines (104 loc) · 2.99 KB

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位最大值 ) 等函数检查是否溢出

类型别名

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

type (
	byte 	int8
	rune 	int32
	文本 	string
)

//实际就是 var b string
var b 文本

单个变量的声明与赋值

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

//声明
var a int 		
//辅助
a = 100
//声明并辅助
var b int = 100
//自动推断声明赋值
c := 100

多个变量的声明有赋值

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

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

空白符号 _

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

多用于函数返回值

变量的类型转换

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

package main

import (
	"fmt"
	"strconv"
)

func main() {
	var a float32 = 100.1
	fmt.Println(a) //100.1
	b := int(a)
	fmt.Println(b) //100

	var s = 65
	//"A",是ASCII编码的65对应字符
	p := string(s) 

	//若想得到string 65,使用 strconv 包
	//string 65
	k := strconv.Itoa(s)
	//int 65
	m := strconv.Atoi(k) 
}