登录
首页 >  Golang >  Go问答

如何在 Go 中返回 Nil 字符串?

来源:Golang技术栈

时间:2023-04-06 06:12:56 284浏览 收藏

哈喽!今天心血来潮给大家带来了《如何在 Go 中返回 Nil 字符串?》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到golang,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

我有一个在某些情况下返回字符串的函数,即当程序在 Linux 或 MacOS 中运行时,否则返回值应该为 nil,以便在代码中进一步省略一些特定于操作系统的检查。

func test() (response string) {
    if runtime.GOOS != "linux" {  
        return nil
    } else {
        /* blablabla*/
    }
}

但是,当我尝试编译此代码时,出现错误:

test.go:10:3:不能在返回参数中使用 nil 作为类型字符串。

如果我只返回一个空字符串return "",我无法将此返回值与nil代码中的进一步比较。

所以问题是如何返回一个正确的 nil 字符串值?

正确答案

如果不能使用"",返回一个类型的指针*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 中表示可选字符串?](https://stackoverflow.com/questions/30731687/how-do-i- represent-an-optional-string-in-go/30741287#30741287)

获取和返回指针的替代方法string:[如何在 Go 中执行文字 *int64?](https://stackoverflow.com/questions/30716354/how-do-i-do-a-literal- int64-in-go/30716481#30716481)

今天关于《如何在 Go 中返回 Nil 字符串?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于golang的内容请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>