函数是什么
函数的结构
func addUp (x int ,y int) int{
return x+y
}
返回单个值
package main
import "fmt"
func isEven (i int) bool{
return i%2 == 0
}
func main(){
fmt.Printf("%v\n",isEven(1))
fmt.Printf("%v\n",isEven(2))
}
// false
// true
返回多个值
func getPrinze() (int,string){
i := 2
s := "goldfish"
return i,s
}
定义不定参数函数
package main
import "fmt"
//计算任意参数的和
func sumNumbers(numbers...int) int{
total := 0
for _, number := range numbers{
total += number
}
return total
}
func main(){
fmt.Println(sumNumbers(2,3,4,5,6))
}
// 20
- numbers是一个存储所有参数的切片
使用具名返回值
具名返回值让函数能够在返回前将值赋给具名变量,这有助于提升函数的可读性,使其更加明确,要使用具名返回值,可在函数签名的返回值部分指定变量名
func sayHi() (x,y string){
x :="hello"
y :="world"
return
}
package main
import "fmt"
func sayHi() (x,y string){
x ="hello"
y ="world"
return
}
func main(){
fmt.Println(sayHi())
}
//hello world
将函数作为值传递
GO将函数视为一种类型,因此可以将函数赋值给变量,以后再通过变量来调用他们
package main
import "fmt"
func main(){
fn := func(){
fmt.Println("hello")
}
fn()
}
//hello
还可以将函数作为值来传递
package main
import "fmt"
func another(f func() string) string{
return f()
}
func main(){
fn := func() string{
return "hello"
}
fmt.Println(another(fn))
}
//hello
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容