13_functions direcory created
This commit is contained in:
parent
b71c08ad91
commit
40a590a28f
|
|
@ -0,0 +1,39 @@
|
|||
fn sqrt(n int) int{
|
||||
return n*n
|
||||
}
|
||||
|
||||
fn cube(n int) int{
|
||||
return n*n*n
|
||||
}
|
||||
|
||||
fn run(value int, op fn(int) int) int{
|
||||
return op(value)
|
||||
}
|
||||
|
||||
pub fn main(){
|
||||
|
||||
println(run(5, sqrt))
|
||||
|
||||
double_fn := fn(n int) int {
|
||||
return n + n
|
||||
}
|
||||
|
||||
println(5, double_fn)
|
||||
|
||||
res := run(5, fn(n int) int{
|
||||
return n+n
|
||||
})
|
||||
|
||||
println(res)
|
||||
|
||||
fns := [sqrt, cube]
|
||||
|
||||
println(fns[0](10))
|
||||
fns_map := {
|
||||
'sqrt' : sqrt
|
||||
'cube' : cube
|
||||
}
|
||||
|
||||
println(fns_map['cube'](2))
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
pub fn main(){
|
||||
|
||||
my_int := 1
|
||||
|
||||
my_closure := fn[my_int] (){
|
||||
println(my_int)
|
||||
}
|
||||
|
||||
my_closure()
|
||||
|
||||
// ====================================================== //
|
||||
|
||||
mut i := 1
|
||||
|
||||
func := fn[i] () int {
|
||||
return i
|
||||
}
|
||||
|
||||
println(func() == 1)
|
||||
i = 1
|
||||
println(func() == 1)
|
||||
|
||||
// ====================================================== //
|
||||
|
||||
c := new_counter()
|
||||
|
||||
println(c())
|
||||
println(c())
|
||||
println(c())
|
||||
|
||||
mut i2 := 0
|
||||
mut ref := &i2
|
||||
|
||||
println_counter := fn[ref] ()
|
||||
{
|
||||
println(*ref)
|
||||
}
|
||||
|
||||
println_counter()
|
||||
i2 = 10
|
||||
println_counter()
|
||||
|
||||
f(dump(100),dump(200),dump(300))
|
||||
|
||||
}
|
||||
|
||||
fn f(a1 int, a2 int, a3 int){
|
||||
dump(a1+a2+a3)
|
||||
}
|
||||
|
||||
fn new_counter() fn() int{
|
||||
mut i := 0
|
||||
|
||||
return fn[mut i] () int{
|
||||
i++
|
||||
return i
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
struct Foo{
|
||||
abc int
|
||||
}
|
||||
|
||||
fn (foo Foo) bar_method(){}
|
||||
|
||||
fn (foo &Foo) bar(){
|
||||
println(foo.abc)
|
||||
}
|
||||
|
||||
fn bar_function(foo Foo){}
|
||||
|
||||
|
||||
struct Node[T]{
|
||||
val T
|
||||
left &Node[T]
|
||||
right &Node[T]
|
||||
}
|
||||
|
||||
pub fn main(){
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue