mchirico / zDaily

Playground to hack and test ideas with Zoe
1 stars 2 forks source link

Day 36: func Default Values #40

Open mchirico opened 3 years ago

mchirico commented 3 years ago

https://vimeo.com/480389198

package main

import "fmt"

type SetValue struct {
    F func() int
}

func D(s ...SetValue) {
    var a int
    if s == nil {
        a = 21
        fmt.Printf("a=%d\n",a)
        return
    }
    for _,f := range s {
        a = f.F()
    }
    fmt.Printf("a=%d\n",a)
}

func Z() int {
    fmt.Printf("I am func Z()\n")
    return 22
}

func main() {
    s := SetValue{Z}
    D(s)
    D()
}
tacomonkautobot[bot] commented 3 years ago

mchirico, Thanks for opening this issue!

ZoeChiri commented 3 years ago

package main 

import ( 
    "fmt"
) 
//creating grocery struct
type Grocery struct{ 

//grocery variables item and price
    item string 
    price int64 
} 

func(food *Grocery) fill_defaults(){ 

//defaults
    if food.item == "" { 
        food.item = "unlisted"
    } 

    if food.price == 0 { 
        food.price = 2
    } 

} 

func main() { 
    food1 := Grocery{item: "Tofu"} 

    fmt.Println(food1) 

    food1.fill_defaults() 

    fmt.Println(food1) 

    food2 := Grocery{price: 3} 

    food2.fill_defaults() 

    fmt.Println(food2) 

}