Go语言的基础语法以及变量和常量

简介: Go语言的基础语法以及变量和常量

基础语法


行分隔符


在Go程序中,一般一行就是一个语句,不像Java等可以在一行写多个语句一样,而且最后也不需要用";"来结尾。


例如,下列写法就是一个Go语句

fmt.Println("HelloWorld")


注释

注释也分为单行注释和多行注释,单行注释以双斜线"//"开头,例如//单行注释;

多行注释通常以"/*"开头,以"*/"结尾,例如:

/*
    多行注释
    多行注释
    多行注释
*/


标识符

标识符通常用来对变量、类型等程序实体进行命名。一个标识符实际上就是一个或者多个字母、数字、下划线组成的字符串序列,并且要求第一个字符不能是数字或者GO语言的关键字。

变量

Go语言中的变量可以分为以下几类:


数值型变量:包括整型(int、int8、int16、int32、int64)、浮点型(float32、float64)和复数型(complex64、complex128)。


字符串型变量:用于存储字符串类型的数据,使用 string 类型。


布尔型变量:用于存储布尔类型的数据,只有 true 和 false 两个值,使用 bool 类型。


指针型变量:用于存储内存地址,使用 *data_type 类型。


结构体变量:用于存储多个变量的组合,使用 struct 类型。


接口型变量:用于存储实现了某个接口的类型,使用 interface 类型。


函数变量:用于存储函数,使用 func 类型。


声明

Go语言是一种静态强类型语言,所以变量有明确的类型。变量的声明一般形式是使用var关键字,形式如下:

var age int


其中,var是变量声明的关键字,age是变量名,int是变量的类型。


当一个变量被声明后,如果不对其进行赋值,则系统会自动赋予它该类型的0值或者空值。例如int类型默认为0、float类型默认为0.0、bool类型默认为false,string类型默认为空字符串,指针类型默认为nil。


(1)标准声明

变量的标准声明格式为

var 变量名 变量类型


变量声明以关键字var开头,中间为变量名,最后为变量类型,无需分号结尾

(2)批量声明

批量声明是一个更加高效的变量声明方法,即使用关键字var和括号将一组变量放在一起。格式如下:

var {
    name string
    age int
    gender string
}


(3)简短声明

除了var关键字以外,还可以使用简短的变量定义和初始化。格式如下:

变量名 := 表达式


当使用简短声明时有三点需要注意:

1)只能用来定义变量

2)不能提供数据类型

3)只能在函数体内部使用,不能用来定义全局变量


赋值

(1)给一个变量赋值

var name string = "zxm"


这里需要说明,变量类型string一般可以省略不写,因为系统会自动进行判断变量类型

(2)给多个变量赋值

var {
    name string = "zxm"
    age int = 18
    gender string = "男"
}


这里的变量类型也可以省略。

作用域

(1)局部变量

表示在函数体内声明的变量称为局部变量,它的作用域只在函数体内,它的参数的返回值的变量也是局部变量。


(2)全局变量

表示在函数体外声明的变量称为全局变量,它的作用域可以在整个包内使用,也可以在任何一个函数中使用。

常量

Go语言中的常量可以分为以下几类


数值型常量:与数值型变量类似,包括整型、浮点型和复数型常量。

字符串型常量:与字符串型变量类似,用于存储字符串类型的数据。

布尔型常量:与布尔型变量类似,用于存储布尔类型的数据。

iota 常量:特殊的常量类型,用于枚举,从 0 开始自增。


声明


常量是一种特殊类型的变量,其值在定义后不能被修改。在 Golang 中,常量可以使用 const 关键字进行定义

(1)标准声明

常量的标准声明格式为

const 常量名 = 常量值


(2)批量声明

1. const {
2.     a = 3.14
3.     b
4.     c
5. }

这里将常量a赋值3.14,b和c没有进行赋值,就会自动按照上面语句" a = 3.14"的值进行赋值,所以b和c也等于3.14


iota


常量声明可以使用常量生成器iota进行初始化。iota用于生成一组以相似规则初始化的常量,但是不需要每行都写一遍初始化表达式。在一个const声明语句中,在第一个声明的常量所在的行,iota会被置为0,然后每有一个常量声明的行iota的值就加1。

目录
打赏
0
0
0
0
0
分享
相关文章
揭秘 Go 语言中空结构体的强大用法
Go 语言中的空结构体 `struct{}` 不包含任何字段,不占用内存空间。它在实际编程中有多种典型用法:1) 结合 map 实现集合(set)类型;2) 与 channel 搭配用于信号通知;3) 申请超大容量的 Slice 和 Array 以节省内存;4) 作为接口实现时明确表示不关注值。此外,需要注意的是,空结构体作为字段时可能会因内存对齐原因占用额外空间。建议将空结构体放在外层结构体的第一个字段以优化内存使用。
监控局域网其他电脑:Go 语言迪杰斯特拉算法的高效应用
在信息化时代,监控局域网成为网络管理与安全防护的关键需求。本文探讨了迪杰斯特拉(Dijkstra)算法在监控局域网中的应用,通过计算最短路径优化数据传输和故障检测。文中提供了使用Go语言实现的代码例程,展示了如何高效地进行网络监控,确保局域网的稳定运行和数据安全。迪杰斯特拉算法能减少传输延迟和带宽消耗,及时发现并处理网络故障,适用于复杂网络环境下的管理和维护。
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
初探Go语言RPC编程手法
总的来说,Go语言的RPC编程是一种强大的工具,让分布式计算变得简单如同本地计算。如果你还没有试过,不妨挑战一下这个新的编程领域,你可能会发现新的世界。
59 10
Go语言变量与常量 -《Go语言实战指南》
本章详细介绍了Go语言中变量与常量的基础知识。变量支持多种声明方式,包括标准声明、类型推导和短变量声明等,未初始化的变量会自动赋零值。常量在声明时必须赋值,且运行时不可更改,支持使用`iota`实现枚举。两者的主要区别在于变量可变而常量不可变,变量有零值而常量必须初始化。此外,还强调了`:=`的使用限制及代码整洁性要求,并通过实践示例巩固理解。掌握这些内容是学好Go语言的关键基础。
Go 语言中的 Sync.Map 详解:并发安全的 Map 实现
`sync.Map` 是 Go 语言中用于并发安全操作的 Map 实现,适用于读多写少的场景。它通过两个底层 Map(`read` 和 `dirty`)实现读写分离,提供高效的读性能。主要方法包括 `Store`、`Load`、`Delete` 等。在大量写入时性能可能下降,需谨慎选择使用场景。
Go语言Web开发框架实践:路由、中间件、参数校验
Gin框架以其极简风格、强大路由管理、灵活中间件机制及参数绑定校验系统著称。本文详解其核心功能:1) 路由管理,支持分组与路径参数;2) 中间件机制,实现全局与局部控制;3) 参数绑定,涵盖多种来源;4) 结构体绑定与字段校验,确保数据合法性;5) 自定义校验器扩展功能;6) 统一错误处理提升用户体验。Gin以清晰模块化、流程可控及自动化校验等优势,成为开发者的优选工具。
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
5月前
|
Go 语言入门指南:切片
Golang中的切片(Slice)是基于数组的动态序列,支持变长操作。它由指针、长度和容量三部分组成,底层引用一个连续的数组片段。切片提供灵活的增减元素功能,语法形式为`[]T`,其中T为元素类型。相比固定长度的数组,切片更常用,允许动态调整大小,并且多个切片可以共享同一底层数组。通过内置的`make`函数可创建指定长度和容量的切片。需要注意的是,切片不能直接比较,只能与`nil`比较,且空切片的长度为0。
124 3
Go 语言入门指南:切片
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问