Результат литерала функции в Go
Литерал может отдать значение наружу.
Для этого в теле пишут return
и выражение. Вызов тогда получает
этот результат:
package main
import "fmt"
func main() {
twice := func(x int) int {
return x * 2
}
result := twice(9)
fmt.Println(result) // выведет 18
}
Если тело занимает несколько строк, итог
тоже задают через return:
package main
import "fmt"
func main() {
clamp := func(n int) int {
limit := 100
if n > limit {
return limit
}
return n
}
fmt.Println(clamp(150)) // выведет 100
}
Литерал может возвращать bool,
строку или другой тип - главное, чтобы
return отдавал нужное значение:
package main
import "fmt"
func main() {
isEven := func(n int) bool {
return n%2 == 0
}
fmt.Println(isEven(4)) // выведет true
fmt.Println(isEven(5)) // выведет false
}
Запишите литерал с двумя
целыми параметрами, который возвращает
модуль их разности. Выведите результат
для 3 и 10.
Запишите литерал с
строковым параметром, который
возвращает true, если строка
начинается с буквы "a". Выведите
результаты для "apple" и
"banana".