Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
package main
import "fmt"
func f(x int) int {
return 1 + x*2
}
func main() {
fmt.Println(f(f(2)))
}11
- Ждать
14:*связывает сильнее+, поэтому1 + x*2— это1 + (x*2), а не(1 + x)*2;f(2)равно5, аf(5)равно11. - Ждать
5или5 11: результат внутреннего вызова5снова передаётся вf, аfmt.Printlnпечатает только значение своего аргумента —f(5).
- Что напечатает
fmt.Println(f(2), f(f(2)))? - Как изменить
f, чтобы она вычисляла(1 + x) * 2?