golang 通用Contains方法

2021-09-03 01:10:09 字數 1382 閱讀 6859

今天在群裡看見有人寫了乙個inaarry方法,主要作用是判斷乙個元素是否在slice中,看完後,我感覺方法應該還有擴充套件的空間

於是自己重新寫了乙個contains方法,可以支援 slice,array,map等型別

package main

import (

"errors"

"fmt"

"reflect"

)// 判斷obj是否在target中,target支援的型別arrary,slice,map

func contain(obj inte***ce{}, target inte***ce{}) (bool, error)

}case reflect.map:

if targetvalue.mapindex(reflect.valueof(obj)).isvalid()

}return false, errors.new("not in array")

}func main()

func testarray()

fmt.println(contain(a, b))

c := "a"

d := [4]string

fmt.println(contain(c, d))

e := 1.1

f := [4]float64

fmt.println(contain(e, f))

g := 1

h := [4]inte***ce{}

fmt.println(contain(g, h))

i := [4]int64{}

fmt.println(contain(a, i))

}func testslice()

fmt.println(contain(a, b))

c := "a"

d := string

fmt.println(contain(c, d))

e := 1.1

f := float64

fmt.println(contain(e, f))

g := 1

h := inte***ce{}

fmt.println(contain(g, h))

i := int64{}

fmt.println(contain(a, i))

}func testmap()

fmt.println(contain(3, a))

var b = map[string]int

fmt.println(contain("1", b))

var c = map[string]int, "2": }

fmt.println(contain("6", c))

}

詳述ArrayList類中contains方法

原始碼 contains public boolean contains object o indexof public int indexof object o else return 1 string型別 arraylistnames new arraylist names.add aa sys...

詳述ArryList類中是contains方法

詳述arrylist類中是contains方法 原始碼public boolean contains object o public int indexof object o else return 1 string 型別 arraylistlist new arraylist list.add j...

golang通用連線池的實現

golang的channel除了goroutine通訊之外還有很多其他的功能,本文將實現一種基於channel的通用連線池。連線池的實現不依賴具體的例項,而依賴某個介面,本文的連線池選用的是io.closer介面,只要是實現了該介面的物件都可以被池管理。當然,你可以實現基於inte ce 的連線池,...