相关疑难解决方法(0)

这是在golang的演员吗?

paxPayment, ok = dataObject.(*entities.PassengerPayment)

括号用于什么?我不确定这个赋值操作中发生了什么.

您还需要更多细节才能回答这个问题吗?

types type-conversion go

32
推荐指数
1
解决办法
2万
查看次数

Go代码中的这个"错误.(*exec.ExitError)"是什么?

例如,在这个答案中:

/sf/answers/727010721/

...
if exiterr, ok := err.(*exec.ExitError); ok {
...
Run Code Online (Sandbox Code Playgroud)

这叫什么err.(*exec.ExitError) ?它是如何工作的?

syntax go

10
推荐指数
2
解决办法
719
查看次数

GoLang:括号中的属性的语义含义?

Go Newb 这里——我遇到了以下我没有编写的 Go 代码

if tc, ok := tng.(ThingClasser); ok {
    //... do some stuff ...
}
Run Code Online (Sandbox Code Playgroud)

我不会理解 的语义tng.(ThingClasser)

在某些方面,这看起来像一个方法调用——即有两个变量(ecok)坐在那里准备接受多个返回值。

然而,tng.(ThingClasser)它本身看起来像是属性访问,而不是方法调用。

然而,周围的括号ThingClasser是我以前从未见过的皱纹。另外,如果重要的话,该ThingClasser符号在该项目的其他地方被定义为接口,所以我认为这可能是围绕“是否实现接口”的一些语法糖——但是两个返回值让我感到困惑。

谷歌搜索没有找到任何具体的东西,但这是谷歌搜索中最困难的事情之一。

这里有谁知道 GoLang 中的这个调用/语法是什么,并可能给我指出相关的手册页,以便我可以 RTFM?

interface go

5
推荐指数
1
解决办法
713
查看次数

golang语法中的“ i。(string)”实际上是什么意思?

我最近开始寻找功能性的go示例,并发现了以下功能:

mapper := func (i interface{}) interface{} {
    return strings.ToUpper(i.(string))
}
Map(mapper, New(“milu”, “rantanplan”))
//[“MILU”, “RANTANPLAN”]
Run Code Online (Sandbox Code Playgroud)

现在在此函数中,您可以看到returnmapper 的值是: strings.ToUpper(i.(string))

但是,这种i.(string)语法是什么意思?我尝试搜索,但没有发现任何特别有用的信息。

syntax functional-programming go

3
推荐指数
1
解决办法
322
查看次数

在golang的zlib/reader.go文件中,"r.(flate.Reader)"是什么意思?

r.(flate.Reader)在golang的zlib/reader.go文件中找到了很多代码片段.这是什么意思?
https://golang.org/src/compress/zlib/reader.go

func (z *reader) Reset(r io.Reader, dict []byte) error {
    if fr, ok := r.(flate.Reader); ok {
        z.r = fr
    } else {
        z.r = bufio.NewReader(r)
    }
    // more code omitted ...
}
Run Code Online (Sandbox Code Playgroud)

PS的源代码ioflate.
io:https:
//golang.org/src/io/io.go flate:https://golang.org/src/compress/flate/inflate.go

go

2
推荐指数
1
解决办法
116
查看次数

究竟是什么.(data_type)方法调用/ do?

我来了一个使用.(string)方法的代码.我不知道这叫什么,我很难找到它.

这是我尝试理解它:

package main

import "fmt"
import "reflect"

func main(){
    var b interface{}
    b = "silly"

    fmt.Println(reflect.TypeOf(b.(string))) // we know that b 
                                            // is a string                     
                                            // at compile time

    fmt.Println(reflect.TypeOf(b))          // we do not

}
Run Code Online (Sandbox Code Playgroud)

结果:

string
string
Run Code Online (Sandbox Code Playgroud)

但是,我认为这reflect.TypeOf是在运行时发生的,同时.(string)会告诉编译器b确实是一个字符串,这可以用来告诉编译器变量是某种类型的.我的理解是对的吗?

goplayground

go

0
推荐指数
1
解决办法
104
查看次数

Golang语言中的项目(推文),这是什么意思?

我用Golang语言找到了以下代码

item.(Tweet)
Run Code Online (Sandbox Code Playgroud)

我已经知道每个变量都有一个方法。但是我不知道上面的代码。有人知道吗?

go

-2
推荐指数
1
解决办法
68
查看次数