golang undefined 问题

Robin3D 发布于 2013/06/05 11:07
阅读 1K+
收藏 0
Go

请问为什么Person和Age都是undefined?

加载中
0
王振威
王振威
class.Person
Robin3D
Robin3D
试了,没用
0
王振威
王振威
你的代码是什么字体?
Robin3D
Robin3D
Monaco
0
李察德-泰森
李察德-泰森

图方便的话把

package Class

改成

package main

0
yzhhui
yzhhui
person,属性外部访问,首字母大写
Robin3D
Robin3D
大写了
0
李察德-泰森
李察德-泰森

应该是这样的

package class

type Person struct {

    Name string    // 首字母大写

    Age int        // 首字母大写

}


在main中

p := class.Person{Name: "Robin", Age: 20}

李察德-泰森
李察德-泰森
回复 @Robin3D :怎么会有这样的使用方式?你对这个概念都理解错了
Robin3D
Robin3D
那样子后Person是可以了,但是接口Age这样子class.Age就不行,编译提示can not use p (type calss.Person) as type class.Age in assignment:class.Person does not implement class.Age(AgePlus method requires pointer receiver)
0
李察德-泰森
李察德-泰森

package class

import (
	"fmt"
)

type Age interface {
	AgePlus()
	AgeNow()
}

type Person struct {
	Name string
	Age  int
}

func (this *Person) AgePlus() {
	this.Age += 10
}

func (this *Person) AgeNow() {
	fmt.Printf("His age is: %v\n", this.Age)
}

package main

import (
	"./class"
)

func main() {
	p := class.Person{Name: "Robin", Age: 20}
	p.AgePlus()
	p.AgeNow()
}

Robin3D
Robin3D
这样子是可以的,那interface应该在什么情况下使用呢?
0
李察德-泰森
李察德-泰森
其实你要看接口,我建议你去看看  @astaxie  写的session文件
Robin3D
Robin3D
好的,谢谢!
返回顶部
顶部