欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang之判斷元素是否在數(shù)組內問題

 更新時間:2023年03月08日 15:08:07   作者:我的貓叫土豆  
這篇文章主要介紹了golang之判斷元素是否在數(shù)組內問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

golang判斷元素是否在數(shù)組內

眾所周知,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內容傳遞進map,只根據(jù)key判斷,所以不需要關心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判斷一個目標元素是否在目標數(shù)組中

  • 目標數(shù)組只能包含整形、字符串、布爾類型等基本類型
  • 目標元素只能包含整形、字符串、布爾類型等基本類型
  • 非interface數(shù)組需要先轉換為對于的interface數(shù)組
  • 其余基本類型的轉換按思想實現(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
}

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Golang 實現(xiàn)Thrift客戶端連接池方式

    Golang 實現(xiàn)Thrift客戶端連接池方式

    這篇文章主要介紹了Golang 實現(xiàn)Thrift客戶端連接池方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • go語言遍歷文件夾示例

    go語言遍歷文件夾示例

    這篇文章主要介紹了go語言遍歷文件夾示例,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-03-03
  • golang 如何通過反射創(chuàng)建新對象

    golang 如何通過反射創(chuàng)建新對象

    這篇文章主要介紹了golang 通過反射創(chuàng)建新對象的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • GO語言實現(xiàn)二維碼掃碼的示例代碼

    GO語言實現(xiàn)二維碼掃碼的示例代碼

    你對二維碼掃碼的流程有困惑嗎,這篇文章就結合筆者自身的開發(fā)經(jīng)驗進行分享,讓大家熟悉并掌握此功能,感興趣的小伙伴快跟隨小編一起學習一下吧
    2023-06-06
  • Go語言的io輸入輸出流方式

    Go語言的io輸入輸出流方式

    Go語言中,輸入輸出流的處理通過io庫中的Reader和Writer接口來實現(xiàn),Reader接口定義了Read方法,用于從流中讀取數(shù)據(jù)到程序中,Writer接口定義了Write方法,用于將數(shù)據(jù)寫入到底層的數(shù)據(jù)流中,這些接口被許多標準庫的類型所實現(xiàn)
    2024-10-10
  • Go語言中配置實現(xiàn)Logger日志的功能詳解

    Go語言中配置實現(xiàn)Logger日志的功能詳解

    當我們正式開發(fā)go程序的時候,就會發(fā)現(xiàn)記錄程序日志已經(jīng)不是fmt.print這么簡單了,所以我們需要專門的去存儲日志文件,這篇文章主要介紹了在Go語言中配置實現(xiàn)Logger日志的功能,感興趣的同學可以參考下文
    2023-05-05
  • golang如何通過viper讀取config.yaml文件

    golang如何通過viper讀取config.yaml文件

    這篇文章主要介紹了golang通過viper讀取config.yaml文件,圍繞golang讀取config.yaml文件的相關資料展開詳細內容,需要的小伙伴可以參考一下
    2022-03-03
  • Go語言Elasticsearch數(shù)據(jù)清理工具思路詳解

    Go語言Elasticsearch數(shù)據(jù)清理工具思路詳解

    這篇文章主要介紹了Go語言Elasticsearch數(shù)據(jù)清理工具思路詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • go語言實現(xiàn)mqtt協(xié)議的實踐

    go語言實現(xiàn)mqtt協(xié)議的實踐

    MQTT是一個基于客戶端-服務器的消息發(fā)布/訂閱傳輸協(xié)議。本文主要介紹了go語言實現(xiàn)mqtt協(xié)議的實踐,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • golang實現(xiàn)跨域訪問的方法

    golang實現(xiàn)跨域訪問的方法

    這篇文章主要介紹了golang實現(xiàn)跨域訪問的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01

最新評論