Golang字符串是否存在于切片或数组中的小工具(基本等同于python in语法)
// golang中是没有判断字符串是否存在数组或切片里的内置方法, 所以我们可以自己搞一个快速小组件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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) } } |
1 2 | >>>>>>>>>>>>>>>>>:预期结果 存在 -> test1<br><br> |
Golang数组的取值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | - 数组是固定长度的特定类型元素组成的序列 - 一个数字由零个或多个元素组成 - 数组的长度是固定的,因此Go更常用slice(切片, 动态的增长或收缩序列) - 数组是值类型, 用索引下标访问每一个元素, 范围是0 - len-1, 访问超出数组长度范围 会panic异常 // Go Array 数组中没有复制的数组 会有相应的默认值 // 声明数组 , 并且个数组中的元素赋值 var intArr [5]int fmt.Println(intArr) intArr[0] = 12 intArr[1] = 34 fmt.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.修改原本的数组, 可以使用引用传递(指针) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!