Строковый результат функции в Go
Давайте теперь будем возвращать из функции текст, а не только число.
После параметров указывают тип string, а в return ставят
текст в кавычках или собранную строку.
Соберем короткое приветствие из параметра функции func:
package main
import "fmt"
func func(name string) string {
return "hello, " + name
}
func main() {
fmt.Println(func("ann")) // выведет 'hello, ann'
}
Результат можно сохранить в переменную строкового типа и напечатать позже:
package main
import "fmt"
func func(name string) string {
return "hello, " + name
}
func main() {
res := func("ann")
fmt.Println(res) // выведет 'hello, ann'
}
Фиксированная метка без параметров тоже возвращает строку. Функция
func отдает один и тот же текст:
package main
import "fmt"
func func() string {
return "report"
}
func main() {
fmt.Println(func()) // выведет 'report'
}
По условию можно вернуть один из двух текстов. Для неотрицательного числа получим плюс, для отрицательного минус:
package main
import "fmt"
func func(n int) string {
if n >= 0 {
return "+"
}
return "-"
}
func main() {
fmt.Println(func(3)) // выведет '+'
fmt.Println(func(-3)) // выведет '-'
}
Даны переменные:
city := "oslo"
Напишите функцию func с параметром name, которая
возвращает строку "city " плюс имя. Выведите результат для
city.
Напишите функцию func с параметром word, которая
возвращает word, записанное два раза подряд через сложение
строк. Проверьте с "go".
Скажите, можно ли присвоить результат func переменной типа
int.