mirror of
https://github.com/vlang/v.git
synced 2025-09-15 07:22:27 +03:00
41 lines
757 B
Text
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)
|
|
}
|