v2 / vlib / v / tests / fns / lambda_generic_test.v
26 lines · 21 sloc · 544 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1import arrays
2
3fn ddd[T](call fn (arg1 T, arg2 T) string, arg1 T, arg2 T) string {
4 return call(arg1, arg2)
5}
6
7fn abc2[T](arg1 T, arg2 T) string {
8 return ddd(|x, y| (x + y).str(), arg1, arg2)
9}
10
11fn abc[T](arg T, call fn (a T) string) string {
12 return call(arg)
13}
14
15fn test_main() {
16 a := [1, 2, 3, 4]
17 b := arrays.join_to_string(a, '-', |x| x.str())
18 assert b == '1-2-3-4'
19 assert abc(123, |x| x.str()) == '123'
20}
21
22fn test_generic() {
23 assert dump(abc2('3', '3')) == '33'
24 assert dump(abc2(3, 3)) == '6'
25 assert dump(abc2(3.1, 3.1)) == '6.2'
26}
27