go 语言基础之语法
go 语言基础语法
演示go 语言的跨包调用及go语言的协程演示
函数的跨包调用
当函数名首字母大写字母开头,如Group1 ,那么这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这杯称为导出;标识符如果是以小写字母开头,则对包外是不可见的。但是他们在整个包的内部是可见并且可用的
跨包调用时,先使用 import 导入, 然后在 包名.函数名
进行调用
在dev_code目录下新建day2包,然后在day2包中,新建main包和tool 包。
在main包中新建文件main.go
在tool包中新建文件hello.go
编写hello.go 和main.go ,注意,需要保存
hello.go
自定义函数,将函数名首字母大写
复制//归属到tool 包里
package tool
// 导入
import "fmt"
// 自定义函数,大写表示函数权限为公共,可以跨包 被调用
// 函数名定义为小写,同一个包中可以直接调用,挎包不可被调用。
func Hello() {
fmt.Println("hello world")
}
main.go
使用import 导入,在使用功能 包名.函数名 调用
复制// 主程序需要归属到main 包
package main
import "dev_code/day2/example1/tool"
// 主函数
func main() {
tool.Hello()
}
此时运行main.go ,成功输出结果
演示go的 goroute
go语言相比于其他的语言,多了个协程
新建example2 包,example2 包下新建goroute包,gouroute包下新建文件goroute.go文件
example2 包下新建mainb包,main 包 下新建main.go 文件
goroute.go
复制package goroute
import "fmt"
// 定义a 为整数
func Test_goroute(a int) {
fmt.Println(a)
}
main.go
复制package main
import "dev_code/day2/example2/goroute"
//协程:可以处理高并发请求
func main() {
for i := 0; i < 100; i++ {
// 使用go 就是表示调用goroute 功能,使用协程去执行
go goroute.Test_goroute(i)
}
}
执行main.go ,可以看到,执行速度很快。而且,从执行输出结果可以看出是并行的
GO语言基础语法
GO标记
go 程序可以有多个标记组成,可以是关键字,表示符, 常量,字符串,符号。
复制fmt
.
Println
(
"Hello,world!"
)
行分隔符
在GO程序中,一行代表一个语句结束。每个语句不需要向c 家族中其他语言一样以分号;结尾,因为这些工作都将有GO编译器自动完成.
如果你打算将多个语句写在同一行,它们必须使用 ; 人为区分,但在实际开发中我们不鼓励这种做法。
以下两种输出结果一致
复制package main
import "fmt"
func main() {
fmt.Println("hello")
fmt.Println("world")
}
复制package main
import "fmt"
func main() {
fmt.Println("hello");fmt.Println("world")
}
注释
注释不会被编译,每一个包应该有相关注释。
单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾。
复制package main
import "fmt"
func main() {
// 这是单行注释
/* 这是多行注释
这是多行注释*/
fmt.Println("演示注释")
}
标识符
标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(A-Z和a-z)数字(0-9)下划线_ 组成的序列,但是第个字符必须是字母或下划线而不能是数字。
以下是有效的标识符
复制mahesh kumar abc move_name a_123
myname50 _temp j a23b9 retVal
以下是无效标识符
- 1ab(以数字开头)
- case(Go 语言的关键字)
- a+b(运算符是不允许的)
字符串连接
Go 语言的字符串可以通过 + 实现:
复制package main
import "fmt"
func main() {
fmt.Println("hello" + "world")
}
//输出结果为 helloworld
可以使用 逗号, 在同一行输出多个不同类型 的 值
复制package main
import "fmt"
func main() {
fmt.Println("hello", 10)
}
//输出 hello 10
关键字
下面列举了 Go 代码中会使用到的 25 个关键字或保留字:
break | default | func | interface | select |
---|---|---|---|---|
case | defer | go | map | struct |
chan | else | goto | package | switch |
const | fallthrough | if | range | type |
continue | for | import | return | var |
除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符:
append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 |
---|---|---|---|---|---|---|---|---|
copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 |
int32 | int64 | iota | len | make | new | nil | panic | uint64 |
println | real | recover | string | true | uint | uint8 | uintptr |
程序一般由关键字、常量、变量、运算符、类型和函数组成
程序中可能会使用到这些分隔符:括号 (),中括号 [] 和大括号 {}。
程序中可能会使用到这些标点符号:.、,、;、: 和 …。
复制package main
import "fmt"
const (
a = iota //0 ioat值默认从0 开始
b //1
c //2
)
func main() {
fmt.Println(a, b, c)
}
Go 语言的空格
Go 语言中变量的声明必须使用空格隔开,如:
复制var age int;
语句中适当使用空格能让程序更易阅读。
无空格:
复制fruit=apples+oranges;
在变量与运算符间加入空格,程序看起来更加美观,如:
复制fruit = apples + oranges;
格式化字符串
Go 语言中使用 fmt.Sprintf 格式化字符串并赋值给新串:
复制package main
import "fmt"
// 定义两个变量,name 为字符串类型, age 为整型
var name string = "zhangsan"
var age int = 10
func main() {
// 字符串 使用 %s, 数字 使用%d
fmt.Printf("名字是:%s,年龄是:%d", name, age)
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现