Merge pull request #11 from viniciusfdasilva/dev
13_functions direcory created
This commit is contained in:
commit
9bbebd4263
|
|
@ -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