Go语言入门(变量声明和函数调用)
- 目录
- 二、变量声明和函数调用
- 1. 变量声明
- 1.1 使用 var 关键字声明
- 1.2 简短声明
- 1.3 零值
- 1.4 常量
- 2. 函数调用
- 2.1 函数定义
- 2.2 多个返回值
- 2.3 命名返回值
- 2.4 可变参数
- 2.5 匿名函数和闭包
目录
Go 语言(Golang)是一种静态类型、编译型语言,由 Google 开发,专注于简洁性、并发和高效性。
下面是 Go 语言的基础语法讲解和代码示例。
上一篇:一、Go语言入门(包和导入)
二、变量声明和函数调用
在 Go 语言中,变量声明和函数定义是基础语法的重要部分。下面将详细讲解变量声明和函数定义,并提供代码示例。
1. 变量声明
1.1 使用 var 关键字声明
使用 var 关键字可以显式声明变量,并指定类型。也可以在声明时进行初始化。
package mainimport "fmt"func main() {// 声明一个字符串变量并初始化var name string = "Alice"fmt.Println(name)// 声明一个整型变量,未初始化时会使用零值var age intfmt.Println(age) // 默认值 0// 同时声明多个变量var width, height int = 100, 200fmt.Println(width, height)// 类型推断var country = "USA"fmt.Println(country)// 声明布尔变量var isActive bool = truefmt.Println(isActive)
}
1.2 简短声明
使用 := 进行简短声明,类型由右值推断。这种方法只能在函数内部使用。
package mainimport "fmt"func main() {// 简短声明变量name := "Bob"age := 30fmt.Println(name, age)// 同时声明多个变量x, y := 10, 20fmt.Println(x, y)// 声明布尔变量isActive := falsefmt.Println(isActive)
}
1.3 零值
未初始化的变量会被赋予默认的零值:
- 数字类型(包括 int, float64):0
- 布尔类型:false
- 字符串类型:“”(空字符串)
- 指针、切片、映射、通道、函数和接口:nil
package mainimport "fmt"func main() {var a intvar b float64var c boolvar d stringvar e []intfmt.Println(a) // 0fmt.Println(b) // 0fmt.Println(c) // falsefmt.Println(d) // ""fmt.Println(e) // []
}
1.4 常量
使用 const 关键字声明常量,常量在编译时确定,并且不可修改。
package mainimport "fmt"const Pi = 3.14func main() {const Greeting = "Hello, World!"fmt.Println(Pi)fmt.Println(Greeting)
}
2. 函数调用
2.1 函数定义
Go 中的函数定义包括函数名、参数列表、返回值列表和函数体。
package mainimport "fmt"// 定义一个函数,接受两个 int 参数,返回它们的和
func add(x int, y int) int {return x + y
}func main() {sum := add(3, 4)fmt.Println("Sum:", sum)
}
2.2 多个返回值
Go 的函数可以返回多个值。
package mainimport "fmt"// 交换两个字符串
func swap(a, b string) (string, string) {return b, a
}func main() {x, y := swap("hello", "world")fmt.Println(x, y) // 输出:world hello
}
2.3 命名返回值
返回值可以在函数定义中命名,命名返回值在函数体中被初始化为对应类型的零值。return 语句可以返回这些值。
package mainimport "fmt"func split(sum int) (x, y int) {x = sum * 4 / 9y = sum - xreturn // 省略返回变量名,返回 x, y
}func main() {fmt.Println(split(17)) // 输出:7 10
}
2.4 可变参数
使用 … 表示可变参数。
package mainimport "fmt"func sum(numbers ...int) int {total := 0for _, num := range numbers {total += num}return total
}func main() {fmt.Println(sum(1, 2, 3)) // 输出:6fmt.Println(sum(4, 5, 6, 7, 8)) // 输出:30
}
2.5 匿名函数和闭包
匿名函数和闭包在 Go 中也很常见。
package mainimport "fmt"func main() {// 匿名函数add := func(x, y int) int {return x + y}fmt.Println(add(3, 4)) // 输出:7// 闭包counter := func() func() int {i := 0return func() int {i++return i}}()fmt.Println(counter()) // 输出:1fmt.Println(counter()) // 输出:2fmt.Println(counter()) // 输出:3
}
通过理解变量声明和函数定义,可以掌握 Go 语言的基础语法,并有效编写和组织代码。
下一篇:三、Go语言入门(运算符)