代码地址
https://github.com/fangkang7/goLearn.git
案例
案例解释
不管是返回切片还是返回映射,函数的参数类型都是一个切片
切片需要用时append来进行扩容
映射则直接键值的方式即可
源码
package main
import "fmt"
func main() {
retMap := isWudebeishu(5, 16, 25, 30, 21)
for key, value := range retMap {
/**
5 是5的倍数 true
16 是5的倍数 false
25 是5的倍数 true
30 是5的倍数 true
21 是5的倍数 false
*/
fmt.Println(key, "是5的倍数", value)
}
// map[5:true 16:false 21:false 25:true 30:t
fmt.Println(retMap)
// [true false true true false]
ret := isWudebeishu1(5, 16, 25, 30, 21)
fmt.Println(ret)
}
/**
返回一个切片
*/
func isWudebeishu1(a ...int) (ret []bool) {
for _, v := range a {
if v%5 == 0 {
ret = append(ret, true)
} else {
ret = append(ret, false)
}
}
return
}
/**
返回一个映射
*/
func isWudebeishu(a ...int) (retMap map[int]bool) {
// panic: assignment to entry in nil map
// 这里有个错误需要注意一下,这个错误是因为map没有初始化
//retMap = make(map[int]bool)
retMap = map[int]bool{}
for _, v := range a {
if v%5 == 0 {
retMap[v] = true
} else {
retMap[v] = false
}
}
return
}