Go中的数据类型| 青训营笔记

65 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

Go语言设计目标为适应网络和多核时代的编程语言。由于其天然支持高性能、高并发,语法简单、学习曲线平缓,具有丰富的数据库,完善的工具链,静态链接,编译迅速,跨平台,垃圾回收性能高等原因,在web开发中具有明显优势。

1.数据类型

数据类型用于声明函数和变量。 Go有布尔,数字,字符串和其他派生类型。

1.1 定义变量

代码中提供了var identifier typeame格式的变量定义方法。(未标明类型时自动Go会自动匹配类型) :=声明变量更加快捷

var a = "initial"

var b, c int = 1, 2

var d = true

var e float64

f := float32(e)

g := a + "foo"
str := string("234")
fmt.Println(a, b, c, d, e, f, str) // initial 1 2 true 0 0
fmt.Println(g)                     // initialapple

const s string = "constant"
const h = 500000000
const i = 3e20 / h
fmt.Println(s, h, i, math.Sin(h), math.Sin(i))

若数值类型未初始化则为0,字符串为""(空串),布尔类型为false,引用类型为nil。 Go也支持多类型相同变量声明。

1.1.1匿名变量

匿名变量的特点是一个下画线_,这本身就是一个特殊的标识符,被称为空白标识符。它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被抛弃,因此这些值不能在后续的代码中使用,也不可以使用这个标识符作为变量对其它变量进行赋值或运算。

1.2 指针

Go中指针多用于修改数据值,&用于取址,*用于指定变量是作为一个指针。

空指针nil表示一个指针没有分配到任何变量,与其他语言的null一样。

语言的掌握要靠运用,熟能生巧。