既然使用接口需要每个结构都要实现接口里面的方法,为什么还需要接口
我个人感觉接口在golang中是一个相当重要和创新的设计,
接口是一个万能类型, 可以是任何数据的载体,
楼主提到的接口中的方法必须被struct实现才算实现了接口这正是接口的奇妙之处,
比如error是一个接口, 你只要实现了Error函数返回一个字符串就行, 这就为你自己定义业务错误和系统错误混合使用打好了基础.
你的函数返回的只是一个error, 但是这个error可以是系统错误也可以是你的业务错误, 取决于这个interface{}实际的类型是什么.
这就是interface{}的魅力. 你可以根据实际的错误类型做出不同的错误处理.
golang发展到现在我觉得如果能尽快实现对泛型的支持那真的是一个很令人欣喜的进步了, 期盼2.0早点到来实现泛型.
#1
更多评论