Duplicate argument

Знаем, че можем да дефинираме функции с именовани резултати и тези резултати са инициализирани със стойност по подразбиране за съответния тип.

Т.е. е в реда на нещата да имаме функцията

func foo(bar int) (fizz int) {
    fizz += bar
    return
}

fizz е инициализирано със стойност 0.

Любопитното е, че имената на аргумент и резултат не могат да съвпадат, което означава, че тази функция:

func foo(bar int) (bar int) {
    bar += 5
    return
}

ще предизвика compile-time error: duplicate argument bar.