我是靠谱客的博主 高贵过客,这篇文章主要介绍Golang学习笔记2——类型与变量,现在分享给大家,希望可以做个参考。

1.基本类型

类型长度默认值说明
bool1false不能使用0、1代替false、true
byte10等同于uint8
int、uint4、80默认整数类型,根据平台,32或64位
int8、uint810-128 ~ 127,0 ~ 255
int16、uint1620-32768 ~ 32767,0 ~ 65535
int32、uint3240-(2^32 / 2) ~ (2^32 / 2 - 1),0 ~ 2^32
int64、uint6480-(2^64 / 2) ~ (2^64 / 2 - 1),0 ~ 2^64
float3240.0
float6480.0默认浮点数类型
complex648
complex12816
rune40Unicode Code Point, int32
uintptr4,80足以存储指针的uint
string""字符串,默认值为空字符串,而非NULL
array数组
struct结构体
functionnil函数
interfacenil接口
mapnil字典,引用类型
slicenil切片,引用类型
channelnil通道,引用类型

2.类型别名

设置类型别名后可以让代码可读性更强,一目了然这个变量做什么用的:

复制代码
1
2
3
type ( ByteSize int64 )

3.变量的声明与赋值

  • 变量的声明: var a int
  • 变量的赋值:a = 123
  • 声明并赋值: var a int = 123 (此时若省略类型,则编译器根据值自动推导类型)
  • 多个变量的声明

并行方式(可以省略类型,由值推导)

复制代码
1
var a, b, c, int = 1, 2, 3

函数内部声明变量的简写形式:

复制代码
1
2
3
funciont main(){ a:= 1 }

函数多个返回值时可以用"_"忽略返回值

复制代码
1
a, _, c, d := 1, 3, 4

4.类型转换

  • go中不存在隐式转换,所有类型转换必须显示声明
  • 转换只能发生在两种相互兼容的类型之间
  • 类型转换的格式:
复制代码
1
2
var a float32 = 1.1 b := int(a)
  • 语法歧义

如果转换的目标是指针、单向通道或没有返回值的函数类型,那么必须使用括号,以避免造成语法分解错误。

复制代码
1
2
3
4
5
6
7
8
fun main() { x := 100 p := *int(&x) //错误:cannot convert &x (type *int) to type int // invalid indirect of int(&x) (type int) fmt.Println(p) }

正确的做法是用括号,让编译器将*int解析未指针类型。

复制代码
1
2
3
4
(*int)(p) (<-chan int)(c) (func())(x)

转载于:https://www.cnblogs.com/marks-gui/p/7707920.html

最后

以上就是高贵过客最近收集整理的关于Golang学习笔记2——类型与变量的全部内容,更多相关Golang学习笔记2——类型与变量内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部