php array 对应于golang
package main import ( "fmt" "sort" ) // array_merge - 合并一个或多个数组 func arrayMerge(arrays ...[]interface{}) []interface{} { var result []interface{} for _, arr := range arrays { result = append(result, arr...) } return result } // in_array - 检查数组中是否存在某个值 func inArray(needle interface{}, haystack []interface{}) bool { for _, item := range haystack { if item == needle { return true } } return false } // array_keys - 返回数组中所有的键名 func arrayKeys(arr map[string]interface{}) []string { keys := make([]string, 0, len(arr)) for k := range arr { keys = append(keys, k) } return keys } // array_values - 返回数组中所有的值 func arrayValues(arr map[string]interface{}) []interface{} { values := make([]interface{}, 0, len(arr)) for _, v := range arr { values = append(values, v) } return values } // array_filter - 用回调函数过滤数组中的元素 func arrayFilter(arr []interface{}, callback func(interface{}) bool) []interface{} { result := make([]interface{}, 0) for _, v := range arr { if callback(v) { result = append(result, v) } } return result } // array_map - 将回调函数作用到给定数组的每个元素上 func arrayMap(arr []interface{}, callback func(interface{}) interface{}) []interface{} { result := make([]interface{}, len(arr)) for i, v := range arr { result[i] = callback(v) } return result } // array_reverse - 返回一个单元顺序相反的数组 func arrayReverse(arr []interface{}) []interface{} { result := make([]interface{}, len(arr)) for i, j := 0, len(arr)-1; i < len(arr); i, j = i+1, j-1 { result[i] = arr[j] } return result } // array_slice - 从数组中取出一段 func arraySlice(arr []interface{}, offset, length int) []interface{} { if offset < 0 { offset = len(arr) + offset } if offset < 0 { offset = 0 } if length < 0 { length = len(arr) + length - offset } if offset+length > len(arr) { length = len(arr) - offset } return arr[offset : offset+length] } // sort - 对数组排序 func sortSlice(arr []int) { sort.Ints(arr) } func main() { // 测试示例 arr1 := []interface{}{1, 2, 3} arr2 := []interface{}{4, 5, 6} fmt.Println("arrayMerge:", arrayMerge(arr1, arr2)) fmt.Println("inArray:", inArray(3, arr1)) assocArr := map[string]interface{}{ "name": "John", "age": 30, "city": "New York", } fmt.Println("arrayKeys:", arrayKeys(assocArr)) fmt.Println("arrayValues:", arrayValues(assocArr)) numbers := []interface{}{1, 2, 3, 4, 5, 6} fmt.Println("arrayFilter:", arrayFilter(numbers, func(v interface{}) bool { return v.(int)%2 == 0 })) fmt.Println("arrayMap:", arrayMap(numbers, func(v interface{}) interface{} { return v.(int) * 2 })) fmt.Println("arrayReverse:", arrayReverse(numbers)) fmt.Println("arraySlice:", arraySlice(numbers, 2, 3)) intArr := []int{5, 3, 1, 4, 2} sortSlice(intArr) fmt.Println("sort:", intArr) }
滴水成冰,世间不存在毫无意义的付出,时间终会给你答案。