從今天起寫一些golang 函式實現php庫函式的功能
php 函式 array_diff,array_intersect
package php
//arraydiff 模擬php array_diff函式
func arraydiff(array1 inte***ce{}, othersparams ...inte***ce{}) (inte***ce{}, error) {}, nil
} if len(array1) > 0 && len(othersparams) == 0
var tmp = make(map[inte***ce{}]int, len(array1))
for _, v := range array1
for _, param := range othersparams
} }var res = make(inte***ce{}, 0, len(tmp))
for k, v := range tmp
} return res, nil
}//arrayintersect 模擬php array_intersect函式
func arrayintersect(array1 inte***ce{}, othersparams ...inte***ce{}) (inte***ce{}, error) {}, nil
} if len(array1) > 0 && len(othersparams) == 0
var tmp = make(map[inte***ce{}]int, len(array1))
for _, v := range array1
for _, param := range othersparams
} }var res = make(inte***ce{}, 0, len(tmp))
for k, v := range tmp
} return res, nil
}
測試測試
var sl2 = inte***ce{}
var sl3 = inte***ce{}
res, err := php.arrayintersect(sl2, sl3)
if err == nil else
注意點
由於引數是inte***ce{}沒有對一些無法比較的型別進行校驗,使用函式時應該注意引數型別為可比較型別
golang 下可比較型別
可比較型別
不可比較型別
boolean
slice
numeric
mapstring
func
pointer
channel
inte***ce
包含前文型別的array和struct
golang 陣列之間的交集,差集,並集,補集
今天公司需求兩個陣列之間的差集,類庫下不下來,就獨立出來了乙份,希望讀者有用 package model import sort sync type set struct 新建集合物件 func new items int set s.add items.returns 新增元素 func s se...
交集並集差集
1 內連線 select from student a inner join sc b on a.sno b.sno 左連線 select from student a left join sc b on a.sno b.sno 差集 select sno from student except s...
shell bash 交集 並集 差集
方法一 直接用檔名 取兩個文字檔案的並集 交集 差集 並 sort m sort file1 uniq sort file2 uniq uniq 交 sort m sort file1 uniq sort file2 uniq uniq d 差 file1 file2 sort m sort fil...