Если вы не можете использовать ""
, верните указатель типа *string
; или - поскольку это Go - вы можете объявить несколько возвращаемых значений, например: (response string, ok bool)
.
Использование *string
: вернуть указатель nil
, если у вас нет «полезной» строки для возврата. Когда вы это сделаете, присвойте его локальной переменной и верните ее адрес.
func test() (response *string) {
if runtime.GOOS != "linux" {
return nil
} else {
ret := "useful"
return &ret
}
}
Использование нескольких возвращаемых значений: если у вас есть полезная строка для возврата, верните ее с помощью ok = true
, например ::
return "useful", true
В противном случае:
return "", false
Вот как это будет выглядеть:
func test() (response string, ok bool) {
if runtime.GOOS != "linux" {
return "", false
} else {
return "useful", true
}
}
У вызывающего абонента сначала проверьте возвращаемое значение ok
. Если это true
, вы можете использовать значение string
. В противном случае, сочтите это бесполезным.
См. Также связанные вопросы:
Как мне представить необязательную строку в Go?
Альтернативы для получения и возврата указателя на string
: Как мне сделать литерал * int64 в Go?