当我读“小小的”书时,我发现它建议写一个没有任何返回值的函数。所以我继续测试该功能,但程序不会编译并给我这个“...用作值”错误。谁知道这里发生了什么?
package main
import (
"fmt"
)
func log(message string) {
fmt.Println(message)
}
func main() {
msg := log("just a message")
fmt.Println(msg)
}
我知道这个功能很简单(也许这个问题也很愚蠢)。但我很想知道这种类型的功能在Go中是否合法?
答案 0 :(得分:2)
不返回任何内容的函数完全有效:
func log(message string) {
// .. do stuff
}
但是将它视为返回某些东西是无效的:
msg := log("foo") // what do you expect to be assigned to msg? log() returns nothing!
答案 1 :(得分:1)
此处使用的功能
func log(message string){
fmt.Println(message)
}
实际上什么都不返回。
但是你将它分配给变量是不正确的。因为函数什么都不返回。
msg := log("just a message")
这就是错误
的原因..用作值
你可以直接打电话。
func main() {
log("just a message")
}
答案 2 :(得分:1)
你的log()函数没有返回任何内容,所以你不能将结果赋给变量(msg:= ...)
import(
"fmt"
)
func log(message string){
fmt.Println(message)
}
func main(){
log("just a message")
}