本文共 1473 字,大约阅读时间需要 4 分钟。
// golang中是没有判断字符串是否存在数组或切片里的内置方法, 所以我们可以自己搞一个快速小组件
func Find(slice []string, val string) (int, bool) { for i, item := range slice { if item == val { return i, true } } return -1, false}func main() { var dataList []string{"test1", "test2"} dataStr := "test1" // 传入切片 和 要查找的字符串 _, flag := Find(dataList, dataStr) if flag { fmt.Println("存在 -> ", dataStr) } else { fmt.Println("不存在 -> ", dataStr) }}
>>>>>>>>>>>>>>>>>:预期结果存在 -> test1
Golang数组的取值
- 数组是固定长度的特定类型元素组成的序列- 一个数字由零个或多个元素组成- 数组的长度是固定的,因此Go更常用slice(切片, 动态的增长或收缩序列)- 数组是值类型, 用索引下标访问每一个元素, 范围是0 - len-1, 访问超出数组长度范围 会panic异常// Go Array 数组中没有复制的数组 会有相应的默认值// 声明数组 , 并且个数组中的元素赋值var intArr [5]intfmt.Println(intArr)intArr[0] = 12intArr[1] = 34fmt.Println(intArr)// 声明数组 并且直接赋值 var namestr [5]string = [5]string{"1", "2"}fmt.Println(namestr)var namestr2 = [5]string{"1"}fmt.Println(namestr2)// 取数组最后一个元素 顺便展示指定索引赋值var namestr2 = [5]string{"1", 4: "124124"}fmt.Println(namestr2, namestr2[len(namestr2)-1])// 自适应数组大小[...]var namestr3 = [...]string{"zj", "zjj", "zjjj"}fmt.Println(namestr3)// 数据结构题类型数组var namestr5 = [...]struct{ name string age int}{ {"zj", 18}, {"ccn", 18},}fmt.Println(namestr5)// 数组循环for i:=0; i < len(namestr3);i++{ fmt.Println("for " + namestr3[i])}for index, value := range namestr3{ fmt.Println(index, value)}** 数组注意事项: 数组是多个相同数据的组合, 且长度固定, 无法扩容 [5]int数组使用步骤: 1.声明数组 2.给数组元素赋值 3.使用数组 4.数组索引从0开始 不能index of range 5.Go数组是值类型, 变量传递默认是值传递, 因此会进行值拷贝 6.修改原本的数组, 可以使用引用传递(指针)
转载地址:http://hlgbz.baihongyu.com/