使用正常功能在Golang中返回类似“ ok”的地图

迈克尔·沃特

在Go中,以下工作(请注意,地图的一种用法有一个收益,另一种有两个收益)

package main

import "fmt"

var someMap = map[string]string { "some key": "hello" }

func main() {
    if value, ok := someMap["some key"]; ok {
        fmt.Println(value)
    }

    value := someMap["some key"]
    fmt.Println(value)
}

但是,我不知道如何使用自己的功能执行相同的操作。是否可能具有类似的行为,并带有可选的return map

例如:

package main

import "fmt"

func Hello() (string, bool) {
    return "hello", true
}

func main() {
    if value, ok := Hello(); ok {
        fmt.Println(value)
    }

    value := Hello()
    fmt.Println(value)
}

无法编译(由于错误multiple-value Hello() in single-value context)...有没有办法使该语法对该函数起作用Hello()

icza

map有所不同,因为它是内置类型而不是函数。Go语言规范:索引表达式map指定了访问a元素的2种形式

使用函数,您将无法做到这一点。如果一个函数有2个返回值,则必须“期望”两个返回值或根本没有。

但是,您可以将任何返回值分配给Blank标识符

s, b := Hello()    // Storing both of the return values

s2, _ := Hello()   // Storing only the first

_, b3 := Hello()   // Storing only the second

您还可以选择不存储任何返回值:

Hello()            // Just executing it, but storing none of the return values

注意:您也可以将两个返回值都分配给空白标识符,尽管它没有用(除了验证它确实有两个返回值):

_, _ = Hello()     // Storing none of the return values; note the = instead of :=

您也可以在Go Playground上尝试这些

辅助功能

如果您多次使用它,并且不想使用空白标识符,则创建一个帮助函数,该函数将丢弃第二个返回值:

func Hello2() string {
    s, _ := Hello()
    return s
}

现在,您可以执行以下操作:

value := Hello2()
fmt.Println(value)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

返回地图

来自分类Dev

在Scala中对地图使用查找功能

来自分类Dev

从golang中的地图生成字典地图

来自分类Dev

地图地图在jQuery中返回平面数组

来自分类Dev

是否可以从java中的功能接口返回地图响应

来自分类Dev

Keras中的地图功能

来自分类Dev

将地图与功能配合使用

来自分类Dev

使用地图撰写功能

来自分类Dev

在地图上使用Promise功能

来自分类Dev

地图功能React返回的空对象

来自分类Dev

如何添加从地图功能返回的项目

来自分类Dev

从Clojure函数中返回地图

来自分类Dev

geoquery 中的地图返回 null

来自分类Dev

Google地图,将地图传递给功能

来自分类Dev

Scala中的异构列表;使用地图功能

来自分类Dev

Scala中的异构列表;使用地图功能

来自分类Dev

评估地图中的功能

来自分类Dev

地图互动时的功能

来自分类Dev

删除地图功能

来自分类Dev

地图中的本机功能

来自分类Dev

地图查找功能的困难

来自分类Dev

如何从返回Java中的地图的流中收集地图

来自分类Dev

锁定golang递归地图

来自分类Dev

嵌套地图golang的结构

来自分类Dev

Xquery返回地图列表而不是地图

来自分类Dev

Xquery返回地图列表而不是地图

来自分类Dev

使用Cordova不能在Ionic Android Build .apk上显示Google地图(在Chrome浏览器上可以正常工作)

来自分类Dev

范围或地图返回什么?

来自分类Dev

操作列表以返回地图