zoukankan      html  css  js  c++  java
  • Golang字符串是否存在于切片或数组中的小工具(基本等同于python in语法)

    // 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]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.修改原本的数组, 可以使用引用传递(指针)
    

      

  • 相关阅读:
    MongoDB自学(1)MongoDB4.0安装
    MongoDB自学(3)MongoDB文档操作
    MongoDB自学(2)创建删除数据库及集合
    vsftpd限制下载流量
    关于旧博客迁移到此博客开场白
    WPF DataTemplate與ControlTemplate
    ErlangC 最佳人力效益指标
    MahApps.Metro控件更換微軟視窗主題
    Erlang C 與M/M/N排隊模型
    WPF 正確理解ContentPresenter
  • 原文地址:https://www.cnblogs.com/zjaiccn/p/14261415.html
Copyright © 2011-2022 走看看