# First

First(...func(item interface{}, key int) bool) IMix

获取符合过滤条件的第一个元素,如果没有填写过滤函数,返回第一个元素。

注:只能传递0个或者1个过滤函数,如果传递超过1个过滤函数,只有第一个过滤函数起作用

intColl := NewIntCollection([]int{1, 2, 2, 3})
intColl.First(func(obj interface{}, index int) bool {
    val := obj.(int)
    if val > 2 {
        return true
    }
    return false
}).DD()

/*
IMix(int): 3 
*/

func TestIntCollection_Filter(t *testing.T) {
	intColl := NewIntCollection([]int{1,2,3})
	a, err := intColl.First().ToInt()
	if err != nil {
		t.Fatal(err)
	}
	if !reflect.DeepEqual(a, 1) {
		t.Fatal("filter error")
	}
}