类型“ string”和“ func()string”之间有什么区别?

时间:2019-01-17 16:59:42

标签: string function go types

我对编程非常陌生,更不用说Go ...目前,我一直在尝试通过HTTP提供一些内容,并且[出于某些原因]我有一个字符串,我想将其存储在单独的包中并提供服务通过函数调用返回到我的主项目。 但是我遇到了一个错误(根据我更改代码的方式,形式多种多样):

“字符串和func()字符串类型不匹配”

这是“数据”包

package encodedjs
var base64EncodedJS string
func ReadEncodedJS() string {
 return base64EncodedJS
}
func init() {
 base64EncodedJS = "data:text/javascript;base64,largestring_blah_blah_blah=="
}

...然后调用它的主要代码

package main
import ( 
 "./encodedjs" 
)
func main() {
 js := "some text to simply show one way I've tried" + encodedjs.ReadEncodedJS
}

3 个答案:

答案 0 :(得分:2)

u qualified identifier仅表示函数,如果按原样使用,它只是一个函数值(例如,可以分配给相同函数类型的变量)。

如果要调用它并使用其返回值,请使用括号,例如encodedjs.ReadEncodedJS。这在Spec: Calls中有详细说明。

由于要串联encodedjs.ReadEncodedJS()值,因此必须调用它:

string

答案 1 :(得分:1)

stringstring,而func() string是返回string的函数。在我看来,encodedjs.ReadEncodedJS是后者,要获得返回的string,您可以编写encodedjs.ReadEncodedJS()

答案 2 :(得分:0)

我很生气,我忘记了我想要的是函数的返回结果,并且应该在末尾添加括号null()...我的意思是我花了很长时间来解决这个问题,点击我的脑袋...它就在我的脸前,正好在其他正确的函数调用旁边。