golang之判斷元素是否在數(shù)組內(nèi)問題
更新時間:2023年03月08日 15:08:07 作者:我的貓叫土豆
這篇文章主要介紹了golang之判斷元素是否在數(shù)組內(nèi)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
golang判斷元素是否在數(shù)組內(nèi)
眾所周知,golang里沒有像python的in來判斷元素是否在list里存在,可替代的辦法是將list放到map里,在map里判斷元素是否存在
// 已知list中元素"amber","jack"
arr := [...]string{"amber","jack"}
// 初始化map
var set map[string]struct{}
set = make(map[string]struct{})
// 上面2部可替換為set := make(map[string]struct{})
// 將list內(nèi)容傳遞進(jìn)map,只根據(jù)key判斷,所以不需要關(guān)心value的值,用struct{}{}表示
for _, value := range arr{
set[value] = struct{}{}
}
// 檢查元素是否在map
if _, ok := set["amber"];ok {
fmt.Println("amber is in the list")
} else {
fmt.Println("amber is not in the list")
}
golang判斷一個目標(biāo)元素是否在目標(biāo)數(shù)組中
- 目標(biāo)數(shù)組只能包含整形、字符串、布爾類型等基本類型
- 目標(biāo)元素只能包含整形、字符串、布爾類型等基本類型
- 非interface數(shù)組需要先轉(zhuǎn)換為對于的interface數(shù)組
- 其余基本類型的轉(zhuǎn)換按思想實現(xiàn)即可
import "reflect"
func FolatArray2Interface(array []float32) []interface{} {
var goalArray []interface{}
for _, value := range array {
goalArray = append(goalArray, value)
}
return goalArray
}
func IntArray2Interface(array []int) []interface{} {
var goalArray []interface{}
for _, value := range array {
goalArray = append(goalArray, value)
}
return goalArray
}
func StringArray2Interface(array []string) []interface{} {
var goalArray []interface{}
for _, value := range array {
goalArray = append(goalArray, value)
}
return goalArray
}
func InArray(array []interface{}, element interface{}) bool {
// 實現(xiàn)查找整形、string類型和bool類型是否在數(shù)組中
if element == nil || array == nil {
return false
}
for _, value := range array {
// 首先判斷類型是否一致
if reflect.TypeOf(value).Kind() == reflect.TypeOf(element).Kind() {
// 比較值是否一致
if value == element {
return true
}
}
}
return false
}
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
golang如何通過viper讀取config.yaml文件
這篇文章主要介紹了golang通過viper讀取config.yaml文件,圍繞golang讀取config.yaml文件的相關(guān)資料展開詳細(xì)內(nèi)容,需要的小伙伴可以參考一下2022-03-03
Go語言Elasticsearch數(shù)據(jù)清理工具思路詳解
這篇文章主要介紹了Go語言Elasticsearch數(shù)據(jù)清理工具思路詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10

