博客
关于我
Go语言基础之变量和常量
阅读量:442 次
发布时间:2019-03-06

本文共 2080 字,大约阅读时间需要 6 分钟。

Go语言入门到放弃完整教程目录

欢迎来到《Go语言从入门到放弃》的完整教程目录。这里不仅提供Go语言的完整学习内容,还包含Python、人工智能、PyTorch、TensorFlow、爬虫等多个技术方向的教学资源,助力你成为一名多能的开发者。


一、标识符与关键字

二、标识符

标识符是编程语言中程序员定义的具有特殊意义的词,包括变量名、常量名、函数名等。Go语言中,标识符由字母、数字和下划线组成,且只能以字母或下划线开头。常见的标识符示例包括:abc__123a123

三、关键字

关键字是编程语言中预先定义好的具有特殊含义的标识符,不建议用于变量名。Go语言中共有25个关键字,以下是完整列表:

  • breakdefaultfuncinterfaceselectcasedefergomapstructchanelsegotopackageswitchconstfallthroughifrangetypecontinueforimportreturnvar

此外,Go语言中还有37个保留字,常见的包括:truefalseiotanilintuintfloat32string等。


四、变量

五、变量的来历

程序运行过程中的数据保存在内存中,变量用于保存数据的内存地址,方便后续通过变量操作数据。通过变量代替内存地址,不仅提高了代码的可读性,也避免了直接操作内存的危险。

六、变量类型

Go语言中的每个变量都有特定的类型,且变量必须经过声明后才能使用。变量类型决定了数据的存储方式和操作方式。常见的变量类型包括整型、浮点型、布尔型等。Go语言支持丰富的类型系统,变量声明后会自动初始化为类型默认值。

七、变量声明

Go语言中的变量需要通过var关键字声明,同一作用域内不支持重复声明。变量声明后必须使用,且支持批量声明和初始化。

7.1 标准声明

变量声明格式为:

var 变量名 变量类型

示例:

var name stringvar age int

7.2 批量声明

支持一次性声明多个变量:

var (a string b int c bool d float32)

7.3 变量初始化

Go语言在变量声明时会自动初始化为类型默认值,例如:

  • 整型和浮点型变量默认为0
  • 布尔型变量默认为false
  • 切片、函数和指针变量默认为nil

变量也可以在声明时指定初始值:

var name string = "Q1mi"var age int = 18

支持多变量一次性声明和初始化:

var name, age = "Q1mi", 20

7.3.1 类型推导

当变量类型省略时,编译器会根据右边表达式推导变量类型:

var name = "Q1mi"var age = 18

7.3.2 短变量声明

在函数内部,可使用:=声明并初始化局部变量:

func main() {    n := 10    m := 200    fmt.Println(m, n)}

7.3.3 匿名变量

在多值赋值时,可使用匿名变量_忽略某些值:

func foo() (int, string) {    return 10, "Q1mi"}func main() {    x, _ := foo()    _, y := foo()    fmt.Println("x=", x)  // 输出: x=10    fmt.Println("y=", y)  // 输出: y=Q1mi}

八、常量

九、iota

iota是Go语言中的常量计数器,只能在const表达式中使用。iotaconst块中重置为0,每新增一行iota计数一次。

9.1 iota示例

const (    n1 = iota  // 0    n2      // 1    n3      // 2    n4      // 3)

9.2 常见用法

  • 插队使用:
const (    n1 = iota  // 0    n2 = 100  // 100    n3 = iota  // 2    n4      // 3)
  • 定义数量级:
const (    _  = iota    KB = 1 << (10 * iota)    MB = 1 << (10 * iota)    GB = 1 << (10 * iota)    TB = 1 << (10 * iota)    PB = 1 << (10 * iota))
  • 多个iota在一行:
const (    a, b = iota + 1, iota + 2  // 1, 2    c, d                       // 2, 3    e, f                       // 3, 4)

以上内容为Go语言教程的基础部分,后续将继续深入讲解函数、控制结构、接口等高级主题,助力你掌握Go语言的核心知识。

转载地址:http://bxgyz.baihongyu.com/

你可能感兴趣的文章
NN&DL4.1 Deep L-layer neural network简介
查看>>
NN&DL4.3 Getting your matrix dimensions right
查看>>
NN&DL4.8 What does this have to do with the brain?
查看>>
nnU-Net 终极指南
查看>>
No 'Access-Control-Allow-Origin' header is present on the requested resource.
查看>>
NO 157 去掉禅道访问地址中的zentao
查看>>
no available service ‘default‘ found, please make sure registry config corre seata
查看>>
no connection could be made because the target machine actively refused it.问题解决
查看>>
No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
查看>>
No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
查看>>
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
查看>>
No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
查看>>
No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
查看>>
No module named 'crispy_forms'等使用pycharm开发
查看>>
No module named cv2
查看>>
No module named tensorboard.main在安装tensorboardX的时候遇到的问题
查看>>
No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
查看>>
No new migrations found. Your system is up-to-date.
查看>>
No qualifying bean of type XXX found for dependency XXX.
查看>>
No resource identifier found for attribute 'srcCompat' in package的解决办法
查看>>