如何在Go中返回Nil字符串?
我有一个在某些情况下会返回字符串的函数,即当程序在Linux或MacOS上运行时,否则返回值应为nil,以便在代码中进一步省略一些特定于OS的检查。
func test() (response string) { if runtime.GOOS != "linux" {
return nil
} else {
/* blablabla*/
}
}
但是,当我尝试编译此代码时,出现错误:
test.go:10:3:不能在返回参数中使用nil作为类型字符串。
如果我只返回一个空字符串(如)return ""
,则无法将此返回值与nil
代码中的进一步内容进行比较。
那么问题是如何返回正确的nil字符串值?
谢谢。
回答:
如果无法使用""
,返回一个类型的指针*string
; 或者,因为这是围棋,你可以声明多个返回值,如:(response string, ok
bool)。
当您没有要返回的“有用”字符串时,使用*string
:return 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中返回Nil字符串? 的全部内容, 来源链接: utcz.com/qa/432625.html