资讯动态

Go语言语法全解析:从零基础到实战应用

发布时间:2026/9/4 8:29:19 来源:尧图企业网站定制
一篇搞定Go语法核心知识点,建议收藏反复查阅前言很多初学者在接触Go时,会被它"看似简单实则精妙"的语法所吸引。Go语言的设计哲学是"少即是多"——它剔除了很多其他语言的复杂特性(如继承、泛型(早期版本)、异常处理等),但同时又引入了一些独特的概念(如goroutine、channel、defer等)。本文将从最基础的语法元素开始,逐步深入到高级特性,帮你建立起完整的Go语法知识体系。不管你是从其他语言转过来的,还是完全零基础,这篇文章都能让你快速上手。一、Go语言基础语法1. 变量与常量变量声明(四种方式)gopackage main import "fmt" func main() { // 方式1:完整声明(指定类型) var name string = "张三" // 方式2:类型推断(最常用) var age = 25 // 方式3:简短声明(函数内专用,最简洁) score := 98.5 // 等价于 var score = 98.5 // 方式4:多变量声明 var x, y int = 10, 20 a, b := "hello", true // 方式5:批量声明 var ( country string = "中国" city string = "北京" zipCode int = 100000 ) fmt.Println(name, age, score, x, y, a, b, country, city, zipCode) }常量声明goconst PI = 3.14159 const ( StatusOK = 200 StatusError = 500 ) // iota:常量计数器(每次+1) const ( Sunday = iota // 0 Monday // 1 Tuesday // 2 Wednesday // 3 )关键点:Go中变量声明了必须使用,否则编译报错(强制代码整洁):=只能在函数内部使用变量命名:驼峰式,首字母大写表示公开(public),小写表示私有(private)2. 基本数据类型go// 布尔型 var flag bool = true // 数值类型 var i int = 100 // 平台相关(32位/64位) var i8 int8 = 127 // -128 ~ 127 var i16 int16 = 32767 // -32768 ~ 32767 var i32 int32 = 2147483647 var i64 int64 = 9223372036854775807 var ui uint = 100 // 无符号整数 var f32 float32 = 3.14 var f64 float64 = 3.1415926 var by byte = 'A' // byte = uint8 var r rune = '中' // rune = int32(Unicode) // 字符串 var str string = "Hello, Go语言" // UTF-8编码字符串常用操作:gos := "Hello, 世界" // 长度(字节数) fmt.Println(len(s)) // 13(中文字符占3字节) // 转换为rune数组(正确处理中文字符) runes := []rune(s) fmt.Println(len(runes)) // 9 // 字符串拼接 s1 := "Hello" s2 := "World" result := s1 + " " + s2 // 使用+拼接 result2 := fmt.Sprintf("%s %s", s1, s2) // 格式化拼接3. 控制结构if-else 条件判断go// 基本用法 age := 18 if age = 18 { fmt.Println("成年了") } else { fmt.Println("未成年") } // if 支持在条件前执行语句(作用域限定) if score := 85; score = 60 { fmt.Println("及格了,分数:", score) } else { fmt.Println("不及格") } // 注意:score 在这里无法访问(作用域仅限if块内)switch-case 分支go// 基本用法 day := "Monday" switch day { case "Monday": fmt.Println("周一,新的一周开始了") case "Friday": fmt.Println("周五,周末即将到来") default: fmt.Println("其他日子") } // 多条件匹配 switch day { case "Saturday", "Sunday": fmt.Println("周末啦!") default: fmt.Println("工作日") } // 无表达式 switch(相当于if-else链) score := 85 switch { case score = 90: fmt.Println("优秀") case sco

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价