Go语言学习笔记 --- 常量、变量、批量定义与声明、数据类型、类型别名、类型转换
2017-07-30 15:14
1491 查看
学习笔记根据 无闻 go语言基础教程 整理
其中大写的外部可调用,小写的不可调用
长度 1字节
取值范围 true, false
注意事项:不可用数字代表true或false
整形: int/uint
根据运行平台可能为32位或64位
8位整形: int8/uint8
长度: 1字节
取值范围:-128 ~127 / 0 ~ 255
字节型: byte (uint8别名)
16位整形: int16/uint16
长度:2字节
取值范围:-32768 ~ 32767 或 0 ~ 65535
32位整型: int32(rune)/uint32
长度: 4字节
取值范围: -2^32/2 ~ 2^32/2-1 或 0 ~ 2 ^ 32 - 1
说明:rune 是有符号的32位整型的别名, 处理unicode字符相关
64位整形: int64/uint64
长度: 8字节
取值范围: -2^64/2 ~ 2^64/2 - 1 或 0 ~ 2 ^ 64 - 1
浮点型: float32 / float64
长度: 4/8字节
小数位: 精确到7/15小数位
复数:complex64 / complex128
长度: 8/16字节
足够保存指针的32位或64位的整数型: uintptr
其他值类型: array 、 struct 、 string
引用类型: slice 、 map 、 chan
接口类型: interface
函数类型: func
通常情况下,值类型默认值为0, bool为false, string为空字符串,关键代码如下:
变量的赋值格式: 变量名称 = 表达式 如:
声明的同时赋值: var 变量名称 变量类型 = 表达式 如:
变量声明与赋值的最简写法:
全局变量的声明不可以省略var, 但可用并行方式
所有变量都可以使用类型推断
局部变量不可以使用var()的方式简写,只能使用并行方式
转换只能发生在两种相互兼容的类型之间, 布尔类型不可以和数字进行转换
类型的转换格式:
批量定义常量
const ( PI = 3.14 c1 = 1 c2 = 2 c3 = 3 )
其中大写的外部可调用,小写的不可调用
批量定义变量
var ( name = "n1" age = 10 )
批量声明一般类型
type( newType int type1 float32 type2 string type3 byte )
Go 基本类型
布尔值: bool长度 1字节
取值范围 true, false
注意事项:不可用数字代表true或false
整形: int/uint
根据运行平台可能为32位或64位
8位整形: int8/uint8
长度: 1字节
取值范围:-128 ~127 / 0 ~ 255
字节型: byte (uint8别名)
16位整形: int16/uint16
长度:2字节
取值范围:-32768 ~ 32767 或 0 ~ 65535
32位整型: int32(rune)/uint32
长度: 4字节
取值范围: -2^32/2 ~ 2^32/2-1 或 0 ~ 2 ^ 32 - 1
说明:rune 是有符号的32位整型的别名, 处理unicode字符相关
64位整形: int64/uint64
长度: 8字节
取值范围: -2^64/2 ~ 2^64/2 - 1 或 0 ~ 2 ^ 64 - 1
浮点型: float32 / float64
长度: 4/8字节
小数位: 精确到7/15小数位
复数:complex64 / complex128
长度: 8/16字节
足够保存指针的32位或64位的整数型: uintptr
其他值类型: array 、 struct 、 string
引用类型: slice 、 map 、 chan
接口类型: interface
函数类型: func
类型零值
零值并不等于空值,而是当变量被声明为某种类型后的默认值通常情况下,值类型默认值为0, bool为false, string为空字符串,关键代码如下:
var a int var b int32 var c float32 var d bool var e string var f []int var g [1]int var h [1]bool var j [1]byte fmt.Println(a) // 0 fmt.Println(b) // 0 fmt.Println(c) // 0 fmt.Println(d) // false fmt.Println(e) // '' 什么都没输出 fmt.Println(f) // [] fmt.Println(g) // [0] fmt.Println(h) // [false] fmt.Println(j) // [0]
内置的类的静态常量
fmt.Println(math.MinInt8) // -128 fmt.Println(math.MaxInt32) // 2147483647
类型的别名
type( 我是自定义string string // 此处给string 自定义别名 ) func main() { var b 我是自定义string b = "中文测试" fmt.Println(b); }
单个变量的声明与赋值
变量的声明格式: var 变量名称 变量类型 如:var a int
变量的赋值格式: 变量名称 = 表达式 如:
a = 1
声明的同时赋值: var 变量名称 变量类型 = 表达式 如:
var a int = 1或
var a = 1(变量类型可以省略,由系统推断)
变量声明与赋值的最简写法:
d := 456
多个变量的声明与赋值
全局变量的声明可使用var()的方式进行简写,如:var ( a = "hello" b,c = 1,5 d := 3 )
全局变量的声明不可以省略var, 但可用并行方式
var a,b,c,d int = 1,2,3,4 fmt.Println(a) // 1 fmt.Println(b) // 2 fmt.Println(c) // 3 fmt.Println(d) // 4
所有变量都可以使用类型推断
局部变量不可以使用var()的方式简写,只能使用并行方式
e,f,g,h := 1,2,3,4 fmt.Println(e) // 1 fmt.Println(f) // 2 fmt.Println(g) // 3 fmt.Println(h) // 4
:=的方式多用于函数有多个返回值时进行赋值或并行赋值忽略某项时使用,如:
a, _, c,d = 1,2,3,4 // 使用 _ 来忽略其中的一项 fmt.Println(a) // 1 fmt.Println(d) // 3 fmt.Println(d) // 4
变量的类型转换
go 中不存在隐式转换,所有类型转换必须显式声明转换只能发生在两种相互兼容的类型之间, 布尔类型不可以和数字进行转换
import ( "fmt" "strconv" ) func main() { var a int = 65 b := string(a) c := strconv.Itoa(a) d := strconv.Atoi(c) fmt.Println(b) // A 备注此处系统将65通过ASCii 码的形式转换成了 A fmt.Println(c) // 65 备注此处的65是字符形65 fmt.Println(d) // 65 备注此处将字符型65转换成了数字65 }
类型的转换格式:
<ValueA> [:]= <TypeOfValueA> (<ValueB>)而可选项
:在变量未在上文定义的时候使用。
var a float32 = 1.1 b := int(a) fmt.Println(a) // 1.1 fmt.Println(b) // 1
相关文章推荐
- c#学习笔记一:变量、常量、预定义数据类型
- Java语言基础{Java_se(02)}-字面量和常量-变量的基本定义和使用-Java表达式-数据类型和分类-基本数据类型的转换-算数运算符-赋值运算符-比较运算符-三元运算符-逻辑运算符
- Go语言学习笔记(二) [变量、类型、关键字]
- Java语言基础(关键字、标识符、注释、常量与变量、进制、数据类型、类型转换、代码示例)
- Go语言学习笔记1 变量,类型以及赋值
- Go语言学习笔记(二) [变量、类型、关键字]
- C语言基础学习基本数据类型-变量和常量
- Java学习笔记(三)之― Java中的变量、数据类型、运算符、类型转换
- 语言基础(项目结构,数据类型,引用类型,转义字符,变量常量,基本的类型转换)
- NO2.Java学习笔记【关键字、类名、标识符、注释、变量与常量、数据类型、进制、运算符】
- [Java入门笔记] Java语言基础(二):常量、变量与数据类型
- Swift 学习笔记第一天-变量常量,及数据类型
- C语言基础学习基本数据类型-变量和常量
- go学习笔记:2.变量、类型、常量
- PL/SQL学习笔记-常量变量及数据类型初步
- C++ Primer 学习笔记4 变量和基本类型 (变量初始化规则、声明和定义)
- PHP学习笔记(三):数据类型转换与常量介绍
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
- C语言学习笔记(二)--数据类型、常量和变量简介
- 黑马程序员 - 学习笔记6 变量 数据类型 与 常量