您的位置:首页 > 编程语言 > Go语言

go语言接口使用

2012-09-05 17:26 633 查看
下面为大家带来go语言三种接口使用模式,代码基于go1.0.2版本

第一种:

package main

import "fmt"

type Writer interface {
Write(data []byte) (int, error)
}

type writerImpl struct {
}

func (w *writerImpl) Write(data []byte) (int, error) {
return len(data), nil
}

type Worker struct {
Writer
}

func main() {
worker := Worker{&writerImpl{}}

// using by inteface
n, err := worker.Write(nil)
if err != nil {
panic(err)
}

fmt.Println(n)
}


第二种:

package main

import "fmt"

type Writer interface {
Write(data []byte) (int, error)
}

func New() Writer {
return &writer{}
}

type writer struct {
}

func (w *writer) Write(data []byte) (int, error) {
return len(data), nil
}

func main() {
worker := New()

// using by inteface
n, err := worker.Write(nil)
if err != nil {
panic(err)
}

fmt.Println(n)
}


第三种:

package main

import "fmt"

type Writer interface {
Write(data []byte) (int, error)
}

func New() *writer {
return &writer{}
}

type writer struct {
}

func (w *writer) Write(data []byte) (int, error) {
return len(data), nil
}

func main() {
worker := New()

// using by inteface
n, err := worker.Write(nil)
if err != nil {
panic(err)
}

fmt.Println(n)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: