英文:
receiver function returns memory address instead on int
问题
我写了一个接收函数,应该返回一个整数,这个整数是一个房子地址的编号(一个定义好的结构体)。请看下面的代码。
当我调用get_number接收函数时,我得到的是一个看起来像是内存地址的东西(0x47dfc0)。我应该得到200。我搞不清楚为什么会这样。
如果简单地执行:fmt.Println(foo_house),我得到了我期望的结果:{200 Barrington}
package main
import "fmt"
type house struct {
number int
street string
}
// 接收函数
func (h house) get_number() int {
return h.number
}
func main() {
var foo_house house
foo_house.number = 200
foo_house.street = "Barrington"
n := foo_house.get_number()
fmt.Println(foo_house)
fmt.Println(n)
}
请注意,我只翻译了代码部分,其他内容不做翻译。
英文:
I wrote a receiver function that should return an integer which is the number of an address of a house (a struct that defined). Please see my code below.
When I call the getnumber receiver function, I get what looks like a memory address (0x47dfc0). I should get 200. I cannot figure out why.
If simply do: fmt.Println(foo_house) I get what I expect: {200 Barrington}
package main
import "fmt"
type house struct {
number int
street string
}
// receiver function
func (h house) get_number() int {
return h.number
}
func main() {
var foo_house house
foo_house.number = 200
foo_house.street = "Barrington"
n := foo_house.get_number
fmt.Println(foo_house)
fmt.Println(n)
}
答案1
得分: 3
你得到的是方法get_number
的地址:
你需要评估get_number
以获取其值,例如:
n := foo_house.get_number()
英文:
What you are getting is the address of the method get_number:
You need to evaluate get_number to get its value, like:
n := foo_house.get_number()
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论