• Анонимные функции в Go
• В Go есть возможность доступа к
Пример с функцией
incrementer
, которая создает i
:func incrementer() func() int {
i := 0
return func() int {
i++
return i
}
}
При вызове
incrementer
i
, и incrementer
i
.func main() {
increment := incrementer()
fmt.Println(increment()) // 1
fmt.Println(increment()) // 2
fmt.Println(increment()) // 3
newIncrement := incrementer()
fmt.Println(newIncrement()) // 1
}
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Оператор
switch
в Go позволяет проверять тип switch
включает хотя быcase
, который работает default
, который выполняется, Пример, который проверяет,
i
типом int
или string
:func do(i interface{}) {
switch v := i.(type) {
case int:
fmt.Printf("Double %v is %v\n", v, v*2)
case string:
fmt.Printf("%q is %v bytes long\n", v, len(v))
default:
fmt.Printf("I don't know type %T!\n", v)
}
}
func main() {
do(21)
do("hello")
do(true)
}
Результат:
Double 21 is 42
"hello" is 5 bytes long
I don't know type bool!
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱1