1.Go 语言函数定义格式如下:
func function_name( [parameter list] ) [return_types] {
函数体
}
parameter list:参数列表,参数就像一个占位符,当函数被调用时,你可以将值传递给参数,这个值被称为实际参数。参数列表指定的是参数类型、顺序、及参数个数。参数是可选的,也就是说函数也可以不包含参数。
return_types:返回类型,函数返回一列值。return_types 是该列值的数据类型。有些功能不需要返回值,这种情况下 return_types 不是必须的。
函数体:函数定义的代码集合。
2.函数返回多个值:
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("Mahesh", "Kumar")
fmt.Println(a, b)
}
//结果为:Kumar Mahesh
3.杨辉三角形:
package main
import "fmt"
//行数
const LINES int = 10
func ShowYangHuiTriangle() {
nums := []int{}
for i := 0; i < LINES; i++ {
//补空白
for j := 0; j < (LINES - i); j++ {
fmt.Print(" ")
}
for j := 0; j < (i + 1); j++ {
var length = len(nums)
var value int
if j == 0 || j == i {
value = 1
} else {
value = nums[length-i] + nums[length-i-1]
}
nums = append(nums, value)
fmt.Print(value, " ")
}
fmt.Println("")
}
}
func main() {
ShowYangHuiTriangle()
}
4.九九乘法表:
package main
import (
"fmt"
"strconv"
)
func add(a, b int) int {
return a + b
}
func multiplicationTable() {
for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
var ret string
if i*j < 10 && j != 1 {
ret = " " + strconv.Itoa(i*j)
} else {
ret = strconv.Itoa(i * j)
}
fmt.Print(j, " * ", i, " = ", ret, " ")
}
fmt.Print("\n")
}
}
func main() {
multiplicationTable()
}
5.Go 语言变量作用域
Go 语言中变量可以在三个地方声明:
函数内定义的变量称为局部变量
函数外定义的变量称为全局变量
函数定义中的变量称为形式参数
package main
import "fmt"
/* 声明全局变量 */
var a int = 20
func main() {
/* main 函数中声明局部变量 */
var a int = 10
var b int = 20
var c int = 0
fmt.Printf("main()函数中 a = %d\n", a)
c = sum(a, b)
fmt.Printf("main()函数中 a = %d\n", a)
fmt.Printf("main()函数中 c = %d\n", c)
}
/* 函数定义-两数相加 */
func sum(a, b int) int {
a = a + 1
fmt.Printf("sum() 函数中 a = %d\n", a)
fmt.Printf("sum() 函数中 b = %d\n", b)
return a + b
}
main()函数中 a = 10
sum() 函数中 a = 11
sum() 函数中 b = 20
main()函数中 a = 10
main()函数中 c = 31
有疑问加站长微信联系(非本文作者)