Go Interface

    代码结构如下:

gaojie@Joy:/media/gaojie/Linux/Go/workspace/interface$ tree
.
├── bin
│   └── main
└── src
    └── main.go

2 directories, 2 files
cat src/main.go
package main

import ("log";"fmt")

/**
* 定义一个Gaojie的结构体
*/
type Gaojie struct {
	name string
	age int
}

//定义一个Person接口, 提供GetName方法, 如何结构(对象只要存在该方法,就可以是他的实现)
type Person interface {
	GetName() string
}

//给结构Gaojie体增加GetName()方法
func (this *Gaojie) GetName() string{
	return this.name
}

func main(){
	//scan input
	var name string
	var age int
	c1 , e := fmt.Scanf("%s", &name)
	if e != nil {
		log.Fatal(e)
	}
	log.Println("->", c1, name);
	c2, e := fmt.Scanf("%d", &age)
	if e != nil {
		log.Fatal(e)
	}
	log.Println("->", c2, age);

	g1 := &Gaojie{name : name, age : age}
	log.Println(g1)

	//将结果转型为Person
	var p1 Person = &Gaojie{name : name+"1", age : age+1}
	log.Println(p1.GetName())

}
编译
go build -o bin/main src/main.go
执行
gaojie@Joy:/media/gaojie/Linux/Go/workspace/interface$ ./bin/main
gaojie
2013/10/19 23:50:11 -> 1 gaojie
24
2013/10/19 23:50:13 -> 1 24
2013/10/19 23:50:13 &{gaojie 24}
2013/10/19 23:50:13 gaojie1

 
 
 
 

 

 

  
  

转载于:https://my.oschina.net/u/139611/blog/170045

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值