Golang задача на функции

Подскажите какие из вариантов ответов правильно определяют функции в Go.B и F не проходит тест

A: func A{}

B: func _B(a int, b int) {}

C: func C(a, b string) int, int {}

D: func D() int32 { var i = 1 return i }

E: func E(_, _ int) { return 1 }

F: func F() F { return F }


Ответы (1 шт):

Автор решения: CrazyElf

Я, конечно, только начинающий гошник, но анализ этого кода на go.dev/play говорит нам, что:

Вариант Функция Анализ
A func A{} Не хватает скобок после имени функции
B func _B(a int, b int) {} Выглядит ОК
C func C(a, b string) int, int {} Возвращается кортеж, нужны скобки (int, int), кроме того, в теле функции нет собственно return этого кортежа
D func D() int32 { var i = 1 return i } Нет ; между заданием переменной и return. Кроме того, компилятор ругается, что i имеет тип int, а возвращаемый тип int32 указан, нужно явное приведение типов
E func E(_, _ int) { return 1 } По описанию функция ничего не возвращает, при этом есть return значения
F func F() F { return F } Онлайн Golang ругается, что F - это не тип, его нельзя указывать, как возвращаемый тип

Возможно, где-то я не прав, опытные гошники надеюсь поправят если что.

→ Ссылка