去fmt.Println显示错误包含

时间:2014-12-02 20:29:52

标签: go

我正在学习GO,使用“游览之旅” 代码做了非常简单的事情,将第一个和最后一个组合在一起并在屏幕上输出 运行代码后,输出是十六进制地址而不是“aaabbb”。任何人都可以帮助我吗?谢谢

package main

import "fmt"

type Name struct{
    first,last string
}

func (name Name) fullName() string{
    return (name.first + name.last)
}

func main(){
    v := Name{"aaa","bbb"}
    fmt.Println(v.fullName)
}

2 个答案:

答案 0 :(得分:5)

使用方法的结果

    fmt.Println(v.fullName())

不是方法的地址

    fmt.Println(v.fullName)

例如,

package main

import "fmt"

type Name struct{
    first,last string
}

func (name Name) fullName() string{
    return (name.first + name.last)
}

func main(){
    v := Name{"aaa","bbb"}
    fmt.Println(v.fullName())
}

输出:

aaabbb

答案 1 :(得分:5)

您没有调用函数fullName。你只是将'指针'传递给它: 请参阅此http://play.golang.org/p/GjibbfoyH0

package main

import "fmt"

type Name struct {
    first, last string
}

func (name Name) fullName() string {
    return (name.first + name.last)
}

func main() {
    v := Name{"aaa", "bbb"}
    fmt.Println(v.fullName())
}