Возвращение переменных
Gentee не позволяет возвращать локальные переменные из функций и методов если они не являются числовыми типами. Все структурные локальные переменные уничтожаются при выходе из функции. Например, вызов следующей функции приведет к ошибке.
func str func1
{
return "Result string"
}
В таких ситуациях можно использовать атрибут result. Он дает возможность возвращать результирующее значение структурного типа из функций или методов. В некоторых случаях это позволяет избежать определение и передачу лишних локальных переменных. При наличии этого атрибута Вы можете работать с переменной с именем result, которая будет возвращена при выходе из функции. У функции с атрибутом result или не должно быть команды return или может быть пустой return.
func str myfunc<result>
{
result = "Result string"
}
func main<main>
{
print( myfunc())
}
Следует заметить, что в действительности при вызове такой функции или метода происходит создание временной переменной в вызывающем блоке. Эта переменная передается в функцию и является там переменной с именем result.