v/vlib/v2/tests/generic_fn.v_

41 lines
757 B
Text

module main
fn main() {
// generic_fn_a[int](1, 'hello')
// generic_fn_b[int, string](1, 'hello')
// generic_fn_a(1, 'hello')
generic_fn_b(1, 'hello')
generic_fn_c(['foo'], {'a': 'apple', 'b': 'bananna'})
generic_fn_d(fn(int, string) {
println(1)
})
generic_fn_e(fn(int, fn(map[string]string) string) {
println(1)
})
}
// fn generic_fn_a[T](param_a T, param_b string) {
// println(param_a)
// println(param_b)
// }
fn generic_fn_b[T,Y](param_a T, param_b Y) {
a := []T{}
b := map[T]int{}
c := map[T]Y{}
dump(a)
dump(b)
dump(c)
}
fn generic_fn_c[T,Y](param_a []T, param_b map[Y]T) {
println(param_a)
}
fn generic_fn_d[T,Y](param_a fn(T, Y)) {
println(param_a)
}
fn generic_fn_e[T,Y]( fn(T, fn(map[Y]Y) Y) ) {
println(param_a)
}