gpt4 book ai didi

dictionary - Go 中的索引表达式是否根据上下文更改其返回类型?

转载 作者:数据小太阳 更新时间:2023-10-29 03:10:49 25 4
gpt4 key购买 nike

if the map contains an entry with key x, a[x] is the map element with key x and the type of a[x] is the element type of M

但是

An index expression on a map a of type map[K]V used in an assignment or initialization of the special form

v, ok := a[x]

yields an additional untyped boolean value.

我还在学习围棋。它是融入语言的“语法特性”并且“仅在使用此语法时起作用”,即调用 v := a[x]v, ok := a[x] 在 AST 中表示为不同类型的节点,例如 MapGetAndCheckExistsNode(m, k, v, ok) vs MapGet(m, k, v)?或者这是使用“正常”的 Go 语法实现的,索引函数以某种方式知道它的输出是否稍后被“解构”?是否可以使用 s := a[x] 语法强制索引表达式返回包含 s.vs.ok 字段的元组或结构?

最佳答案

作为语言本身的一部分,这是一个任意规则。它用于避免类型转换的 panic :

t, ok := x.(T)  

或者检查映射中是否确实存在键:

v, ok := m[k]

或者检查接收是否有效:

x, ok := <-ch

用你自己的函数是不可能做到的,只有在语言设计者插入的这些特殊情况下。查看spec更多。

关于dictionary - Go 中的索引表达式是否根据上下文更改其返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52224282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com