mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 01:21:38 +08:00
update book code
This commit is contained in:
34
eBook/exercises/chapter_11/simple_interface.go
Executable file
34
eBook/exercises/chapter_11/simple_interface.go
Executable file
@@ -0,0 +1,34 @@
|
||||
// simple_interface.go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
type Simpler interface {
|
||||
Get() int
|
||||
Put(int)
|
||||
}
|
||||
|
||||
type Simple struct {
|
||||
i int
|
||||
}
|
||||
|
||||
func (p *Simple) Get() int {
|
||||
return p.i
|
||||
}
|
||||
|
||||
func (p *Simple) Put(u int) {
|
||||
p.i = u
|
||||
}
|
||||
|
||||
func fI(it Simpler) int {
|
||||
it.Put(5)
|
||||
return it.Get()
|
||||
}
|
||||
|
||||
func main() {
|
||||
var s Simple
|
||||
fmt.Println(fI(&s)) // &s is required because Get() is defined with a receiver type pointer
|
||||
}
|
||||
// Output: 5
|
Reference in New Issue
Block a user