函数可以接受0个或者多个变量,下面定义了一个函数 add ,接受两个int变量,然后返回结果是一个int类型
package main
import (
"fmt"
)
func main() {
fmt.Println("hello", add(3,4))
}
func add(a int, b int) (int) {
return a + b
}
注意,在go语言中,类型是在变量的后面的,这种语法和C,Java等是反的,乍一看会很别扭,但是根据我的经验,第二天就习惯了。
返回值的类型,跟在参数列表后面,用一个括号括起来。
所以go的函数签名语法是
func 函数名 (a typeA, b typeB ...) (typeC) {
}
第一个括号里是参数列表,可以有0个,或者多个
第二个括号是返回类型。如果函数没有返回值,也可以不写这个括号,下面的函数没有返回值
package main
import (
"fmt"
)
func main() {
add(3, 4)
fmt.Println("hello", )
}
func add(a int, b int) {
fmt.Println(a, b)
}
在参数列表中,如果连续的几个变量,用的是相同的类型,可以省略前面的类型,只保留最后一个,这样编译器也知道前几个变量都是这个类型的。如下
package main
import (
"fmt"
)
func main() {
add(3, 4)
fmt.Println("hello", )
}
func add(a, b int) {
fmt.Println(a, b)
}
因为add函数的参数a,b都是int类型的, 所以第一个类型省略了,只需保留最后一个int即可。
这样的语法其实很方便的,尤其在参数很多时,比如有5,6个参数,下面两个写法可以对比一下
func add2(a int, b int, c int, d int, e int) {
fmt.Println(a, b)
}
func add(a, b, c, d, e int) {
fmt.Println(a, b)
}
是不是,省略变量之后,看起来简练很多。