go 语言入门
行注释 //
如果一次性注释多行ctrl+/ .
gofmt 格式整理
gofmt -w main.go
行长约定
一行最长不要超过80个字符
1 2 3 | fmt.Println( "chenxi" , "chenxi" ) |
go API https://go.dev/tour/welcome/1
变量介绍
变量是程序中用来存储数据的命名内存区域。它就像一个容器,可以存放不同类型的数据,并且在程序运行过程中,这些数据的值可以被读取和修改。
变量的基本特征
1. 命名存储 • 每个变量都有一个唯一的名称,通过这个名称可以访问其存储的数据。
2. 数据类型 • 变量的数据类型决定了它可以存储什么样的数据,比如整数、浮点数、布尔值、字符串等。在 Go 语言中,变量是强类型的,声明时必须确定类型或让编译器推断类型。
3. 内存分配 • 声明变量时,计算机为其分配一块内存,用于保存变量的值。变量的类型决定了这块内存的大小。
4. 可变性 • 变量的值可以在程序运行时改变。你可以将新值赋给变量,覆盖原来的值。
声明
使用 var 关键字
1 2 3 | var age int // 声明一个整型变量 age age = 25 // 给变量赋值 var name string = "Tom" // 声明并初始化变量 name |
短变量声明(仅在函数内可用)
1 2 3 4 5 | func main() { age := 30 // 自动推断类型为 int name := "Alice" // 自动推断类型为 string fmt.Println(age, name) } |
多变量声明
1 2 | var x, y int = 10, 20 // 同时声明两个整型变量 a, b, c := 1, "Hello" , 3.14 // 使用短声明同时初始化多个变量 |
示例

1 package main 2 import "fmt" 3 var (//全局变量 4 cw int 5 by byte 6 ) 7 var ce,cd = 12,"小捷"// 全局变量 8 func main(){ 9 // var i int = 1 10 // fmt.Println(i) 11 // //测试int8;溢出 12 // var e int8 = -128 13 // fmt.Println(e) 14 // //# command-line-arguments 15 // //src\尚硅谷\chget1\deay1\dea1\main.go:7:15: cannot use -129 (untyped int constant) as int8 value in variable declaration (overflows) 16 // var w byte = 8 17 // fmt.Println(w) 18 var i int 19 fmt.Println("i=",i) 20 //类型推导 21 var num = 10 22 fmt.Println(num) 23 //短语 24 c := 7 25 fmt.Println(c) 26 x,z := 4,"cx" 27 fmt.Println(x,z) 28 c1,cs,re := 12,true,"晨曦" 29 fmt.Println(c1,cs,re) 30 fmt.Println(ce,cd) 31 fmt.Println(cw,by) 32 33 } 34 执行结果 35 PS D:\golang\goproject> go run src\尚硅谷\chget1\deay1\demo1\main.go 36 i= 0 37 10 38 7 39 4 cx 40 12 true 晨曦 41 12 小捷 42 0 0
变量在程序设计中的意义
-
数据存储与操作
- 变量允许我们存储用户输入、计算结果、状态信息等,并在后续程序中对这些数据进行操作和修改。
-
提高代码可读性与维护性
- 为变量取一个有意义的名称,可以让代码更容易理解和维护。例如,用
totalPrice
表示总价格,比直接使用一个数字或无意义的标识符要清晰得多。
- 为变量取一个有意义的名称,可以让代码更容易理解和维护。例如,用
-
控制程序状态
- 变量记录了程序的运行状态和过程信息,例如循环计数器、标志位等,帮助程序控制流程。
变量的生命周期与作用域
-
生命周期
- 局部变量:在函数内声明的变量,只在函数调用期间存在,函数结束后变量会被销毁。
- 全局变量:在函数外部声明的变量,在整个程序运行期间都有效。
-
作用域
- 变量的作用域决定了它在代码中可以被访问的范围。局部变量只在其声明的块或函数内部可见,而全局变量在整个包内都可见
总结
- 变量是程序中的数据容器,用来存储和操作数据。
- 声明变量时需要指定数据类型或让编译器推断类型。
- 变量具有作用域和生命周期,它们决定了变量在程序中的可见范围和存在时间。
- 在 Go 语言中,变量的声明可以使用
var
或:=
(短变量声明),这使得编写代码变得简洁且类型安全。
理解变量不仅是掌握编程语言的基础,也是构建健壮、灵活程序的关键。
变量使用注意事项
该区域的数据值可以在同一类型范围内不断变化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | package main import ( "fmt" ) func main(){ n6 := 67 n6 = 8 n6 = 9 n6 = 1.2 //已经修改数据类型 fmt.Println(n6) } 执行结果 PS D:\golang\goproject> go run src\尚硅谷\chget1\deay1\demo1\main2. go # command-line-arguments |
变量在同一个作用域不能同名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package main import ( "fmt" ) func main(){ n6 := 67 n6 = 8 n6 = 9 //n6 = 1.2//已经修改数据类型 n6 := 90 fmt.Println(n6) } 执行结果 PS D:\golang\goproject> go run src\尚硅谷\chget1\deay1\demo1\main2. go # command-line-arguments src\尚硅谷\chget1\deay1\demo1\main2. go :10:5: no new variables on left side of := |
变量= 变量名+ 数据类型
golang 的变量如果没有赋初始值,编译器会使用默认值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package main import ( "fmt" ) func main(){ // n6 := 67 // n6 = 8 // n6 = 9 // //n6 = 1.2//已经修改数据类型 // n6 := 90 var n int fmt.Println(n) } 执行结果 PS D:\golang\goproject> go run src\尚硅谷\chget1\deay1\demo1\main2. go 0 |
在 Go 语言中,+ 号有多种用法
1. 算术加法
+
用于对数字进行加法运算,支持整数、浮点数以及复数等类型。

1 package main 2 3 import "fmt" 4 5 func main() { 6 a := 10 7 b := 20 8 sum := a + b 9 fmt.Println("整数相加:", sum) // 输出 30 10 11 x := 3.14 12 y := 2.71 13 fmt.Println("浮点数相加:", x + y) // 输出 5.85 14 15 c := complex(1, 2) 16 d := complex(3, 4) 17 fmt.Println("复数相加:", c + d) // 输出 (4+6i) 18 } 19 PS D:\golang\goproject> go run src\尚硅谷\chget1\deay1\demo1\main1.go 20 整数相加: 30 21 浮点数相加: 5.85 22 复数相加: (4+6i)
2. 字符串拼接
当 +
作用于字符串时,会将两个字符串连接在一起,形成一个新字符串。

package main import "fmt" func main() { str1 := "Hello, " str2 := "Go!" result := str1 + str2 fmt.Println("字符串拼接:", result) // 输出 "Hello, Go!" } 执行结果 PS D:\golang\goproject> go run src\尚硅谷\chget1\deay1\demo1\main3.go 字符串拼接: Hello, Go!
草都可以从石头缝隙中长出来更可况你呢
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏