func function_name( [parameter list] ) [return_types] { 函数体 }
parameter list:参数列表,参数就像一个占位符,当函数被调用时,你能够将值传递给参数,这个值被称为实际参数。参数列表指定的是参数类型、顺序、及参数个数。参数是可选的,也就是说函数也能够不包含参数。
return_types:返回类型,函数返回一列值。return_types 是该列值的数据类型。有些功能不须要返回值,这种状况下 return_types 不是必须的。
函数体:函数定义的代码集合。app
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
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() }
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() }
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