/* 定义接口 */ type interface_name interface { method_name1 [return_type] method_name2 [return_type] method_name3 [return_type] ... method_namen [return_type] } /* 定义结构体 */ type struct_name struct { /* variables */ } /* 实现接口方法 */ func (struct_name_variable struct_name) method_name1() [return_type] { /* 方法实现 */ } ... func (struct_name_variable struct_name) method_namen() [return_type] { /* 方法实现*/ }
在别的编程语言中,接口一般就是一个没有任何实现方法的类,这个类里面的方法规定了入参和返回,但是在golang中接口为什么没有地方指定入参?还有定义接口的时候为什么还要定义一个结构体?这个结构体是起什么作用?对golang的接口设计表示很不理解
但是在golang中接口为什么没有地方指定入参?
你可以这样写:
还有定义接口的时候为什么还要定义一个结构体?这个结构体是起什么作用?
从这个角度来说,interface和java的interface和相似。
interface仅仅是一个定义好函数的接口,但是不定义具体的实现,需要自己实现一个类来实现这个interface,
转换成java就是
关于Go的interface,建议你看这篇文章:
http://www.jb51.net/article/5...
interface只是接口,并不包含任何实现。
如果想要实现一个接口,在java中要使用implements关键字。
Go没有implements关键字,要实现一个接口,只能采用类似Duck type的形式,http://studygolang.com/articl...,不能指定某结构体实现了某个接口。