说go的对象 其实有的牵强。其实他是面向接口。面向interface。。哈,前面说成面向对象了,就弄这个说法。但是他又不是面向对象中的 那个 面向接口编程。
go的接口很像一个面向对象的泛型类型。记住他是一个类型。可以被赋值,可以赋值。但同时它又是一个接口。只不过这个接口和以前我们所用的面向对象不一样的是,必须得定义接口,然后了类去实现接口。而go的接口思想是反过来了,相当于与这个类有哪些方法。然后我们定义了一个接口,这个接口有哪些方法。然后了这个类型就能赋值给这个接口。就这么简单。
也许说的不明白,上代码吧:
type testInterface interface{
add(a,b int) int
multiply(a,b int) int
}
所有实现了 add 和multiply方法的类型都可以直接赋值给 testInterface 类型变量
另外interface可以用作你参水或者是返回值的类型不确定的时候的返回。
另go中只有抱没有类。函数首字母大写表示函数可以被外面的包访问。如果小写,就是说只在包内能看到和使用这个函数。
玩。这个看了很长时间,能写写不来的 没啥东西。囧
下次,由开发网站说起!ok
go的接口很像一个面向对象的泛型类型。记住他是一个类型。可以被赋值,可以赋值。但同时它又是一个接口。只不过这个接口和以前我们所用的面向对象不一样的是,必须得定义接口,然后了类去实现接口。而go的接口思想是反过来了,相当于与这个类有哪些方法。然后我们定义了一个接口,这个接口有哪些方法。然后了这个类型就能赋值给这个接口。就这么简单。
也许说的不明白,上代码吧:
type testInterface interface{
add(a,b int) int
multiply(a,b int) int
}
所有实现了 add 和multiply方法的类型都可以直接赋值给 testInterface 类型变量
另外interface可以用作你参水或者是返回值的类型不确定的时候的返回。
另go中只有抱没有类。函数首字母大写表示函数可以被外面的包访问。如果小写,就是说只在包内能看到和使用这个函数。
玩。这个看了很长时间,能写写不来的 没啥东西。囧
下次,由开发网站说起!ok
有疑问加站长微信联系(非本文作者)