Go基础:理解Go中的数据类型,值,常量,变量和作用域

在值、常量和变量之前,了解数据类型是非常重要的。

full lessons here👇:
https://programmerscareer.com/zh-cn/golang-basic-skill/

由AI生成,可能有错误,仅供参考

Go 中,每个变量都有一个关联的数据类型。这個数据类型确定变量的特征,如其大小,以及可以对它进行的操作性质。

Go 的基本数据类型包括:

  • 整数,正或负的整数,没有小数点。它们可以在 Go 中声明为 int,自动分配适当的位大小基于您的系统 CPU 架构(32 或 64)。
  • 浮点数,或简称“floats”。它们表示实数,有小数点,可以声明为 float32float64
  • 布尔值,表示 truefalse。它们使用 bool 关键字声明。
  • 字符串,是一个定义在双引号中的一系列字符。

例如:

1
2
3
4
var x int = 5
var y float64 = 9.5
var z bool = true
var s string = "Hello, Golang"

在每个声明中,我们指定了一个特定的变量是某种类型的。

主题:值的介绍

值是我们的程序将操作的基本数据。每个值都属于特定类型,在 Go 中,值可以是 intfloat64boolstring 等多种类型。

以下是如何使用它们:

1
2
3
4
var i int = 10
var f float64 = 230.5
var b bool = false
var str string = "Hello, world!"

在 Go 中,我们不能在同一个表达式中混合不同类型。如果您尝试编译 fmt.Println("string" + 2), Go 将抛出错误。

主题:Go 常量

常量是一个简单、不可变的值。我们在 Go 中使用 const 关键字声明常量:

1
const pi float64 = 3.1416

一旦你声明了一个常量,你不能改变其值。如果您尝试编译 pi = 1.2, Go 将抛出错误,告诉你不能将值赋给 pi

常量可以是字符、字符串、布尔值或数字值。

1
2
3
4
5
const (
a = "Hello"
b = true
c = 5
)

在上面的示例中,abc 是常量。

主题:Go 变量

变量在 Go 中使用 var 关键字声明。Go 是静态类型的,这意味着当你声明一个变量是某种类型时,你只能将该类型的值赋给该变量。

Go 变量可以以多种方式声明:

1
2
3
var x int = 1 // 声明类型和初始值
var y int // 声明类型,自动分配零值(0)
z := 1 // 短变量声明,Go 自动推断类型

Go 还支持多个变量声明:

1
var a, b, c int = 1, 2, 3

:= 操作符是一个短声明,可以声明和初始化一个变量。

例如,在 var f string = "Hello, world" 中,我们可以使用 f := "Hello, world" 替代。

请记住,:= 只能在函数内部使用。在函数外部,您必须使用 var 关键字声明变量。

在每种情况下,一個变量将被创建,你可以使用对应的标识符(xyz 等)获取或设置其值。

主题:Go 中的作用域

Go 中,变量和常量都有一个特定的 作用域,即它们可以被访问的代码区域。

主要有两个类型的作用域:

  1. 局部作用域:如果变量或常量在函数内部定义,那么其作用域就限定于该函数内。这意味着它只能在该函数内访问,而不能外部访问。
1
2
3
4
func hello() {
var message string = "Hello, Golang"
fmt.Println(message) // 这将工作
}

fmt.Println(message) // 这将不工作,因为’message’ 已经超出了作用域

  1. 全局作用域:如果变量或常量在所有函数外部定义,那么它可以从代码的任何部分访问,包括函数内部。
1
2
3
4
5
var message string = "Hello, Golang"
func hello() {
fmt.Println(message) // 这将工作
}
fmt.Println(message) // 这将工作

请记住,全球变量和常量的名称应该在整个包中唯一。

摘要

哇,我们今天学到了很多!我们讨论了 Go 的基础知识,包括简单数据类型、变量和常量声明,以及变量和常量的作用域。记住,实践是最好的老师!尝试创建自己的 Go 程序,操作不同类型的变量和常量。

English post: https://programmerscareer.com/go-basic-01/
作者:Wesley Wei – Twitter Wesley Wei – Medium
注意:本文为作者原创,转载请注明出处。

Go基础:了解Go中的字符串,数组,切片,映射,结构体和指针 MySQL面试问题:假设创建一个复合索引(a, b, c),如果查询字段a和c,会使用这个复合索引吗?

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×