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.修改原本的數組, 可以使用引用傳遞(指針)

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM