go学习【三】面向对象啊

十一文 2013-05-16 12:13:35
原地址:http://blog.csdn.net/xming4321/article/details/8933030

说go的对象 其实有的牵强。其实他是面向接口。面向interface。。哈,前面说成面向对象了,就弄这个说法。但是他又不是面向对象中的 那个 面向接口编程。


go的接口很像一个面向对象的泛型类型。记住他是一个类型。可以被赋值,可以赋值。但同时它又是一个接口。只不过这个接口和以前我们所用的面向对象不一样的是,必须得定义接口,然后了类去实现接口。而go的接口思想是反过来了,相当于与这个类有哪些方法。然后我们定义了一个接口,这个接口有哪些方法。然后了这个类型就能赋值给这个接口。就这么简单。

也许说的不明白,上代码吧:
type testInterface interface{
add(a,b int) int
multiply(a,b int) int
}


所有实现了 add 和multiply方法的类型都可以直接赋值给 testInterface 类型变量

另外interface可以用作你参水或者是返回值的类型不确定的时候的返回。



另go中只有抱没有类。函数首字母大写表示函数可以被外面的包访问。如果小写,就是说只在包内能看到和使用这个函数。








玩。这个看了很长时间,能写写不来的 没啥东西。囧
下次,由开发网站说起!ok
...全文
2257 57 打赏 收藏 转发到动态 举报
写回复
用AI写文章
57 条回复
切换为时间正序
请发表友善的回复…
发表回复
kennethjing 2015-01-28
  • 打赏
  • 举报
回复
go就是一门语言而已,不存在适合于什么场景的问题。 but,go真的是大道至简,解耦面向对象中很多不必要的关联。 其底层实现又非常高效和优美,真的是集大成者。必火。
YHL27 2014-11-12
  • 打赏
  • 举报
回复
学了一段时间,激情已过,不过感觉挺不错的哦,以前写PHP点
风/xin云 2014-11-12
  • 打赏
  • 举报
回复
版主,能不能给一些学习资料?
codyi 2014-01-09
  • 打赏
  • 举报
回复
我们公司也在用go进行web api开发。go的线程非常好,并且线程之间的通信也很简单。不过第三方的包现在还很不完善。
Sciocco 2014-01-08
  • 打赏
  • 举报
回复
每天回帖 可以拿分
fatlism 2014-01-06
  • 打赏
  • 举报
回复
GO GO GO GO GO ---会hello world
vcf_reader 2013-12-30
  • 打赏
  • 举报
回复
不 明 觉 厉
teemai 2013-12-28
  • 打赏
  • 举报
回复
语法有点诡异
时光清浅 2013-10-29
  • 打赏
  • 举报
回复
JAVA还没完全用明白的人表示,完全看不明白
clark523 2013-10-25
  • 打赏
  • 举报
回复
个人认为是否面向对象,最重要的特性是继承吧。。 楼主说了一下,接口与结构的关系。 但是没有提到继承。 但是go当中好像只有组合没有继承概念。 当然可以用组合来模拟继承。。 但是不管怎么说,用起来总是感觉怪怪的。
tjhaua11 2013-10-07
  • 打赏
  • 举报
回复
顶起,正在学习中
超度逗比 2013-09-28
  • 打赏
  • 举报
回复
引用 13 楼 xming4321 的回复:
[quote=引用 1 楼 zl3450341 的回复:] GO语言的定位是系统级开发, 而不是应用级,你娃咋就从 Web开发讲起列? 就从变量声明来说吧 他把类型放在后面,原因是为什么列? 我查了一下官方,解释大致是如下: 在C 语言中, int* a, b; a是指直类型变量,b是int型变量。 为了防止与C语言发生误解,所以他故意把类型放在后面 var a,b int* 这样一来,a,b就是同一个类型,如果放在前面,又怕与C语言误解。 可见,GO语言的初始定位,或者说假想的用户群体就是C/c++程序员。 而主要不是JAVA,.NET这类群体的。 关于if. for不写括号。 官网上有段话,大致意思就是: 每种语言都有自己的风格,不写括号,就是GO的风格,如果你要用GO,那么就请遵守它。 ~ 呃。。有点强硬
其实他的底层 来源于plant 9过来的一些东西 (一个未成气候的操作系统) 连底层的汇编代码也是。 不过了 我觉得他更适合 web开发,系统开发有c了 所以好多人都说 是网络时代的第二个c语言。 其主要特色在于并行 ,多核。其实现在国内用go的也主要集中在web后端服务啊![/quote] 认同,golang从目前的情况看更像个web服务端的C,开发效率却又嗷嗷的,性能上也能嗷一下,几乎就不存在服务端部署这一概念了。
stinkaroo 2013-09-12
  • 打赏
  • 举报
回复
纯凑热闹
venustech99 2013-08-25
  • 打赏
  • 举报
回复
嗯,正在学习
十一文 2013-08-22
  • 打赏
  • 举报
回复
引用 43 楼 real_tecent 的回复:
此贴必火!! 但是go能火么?!
当然能!
attach_finance 2013-08-22
  • 打赏
  • 举报
回复
此贴必火!! 但是go能火么?!
十一文 2013-08-21
  • 打赏
  • 举报
回复
引用 41 楼 jdwx1 的回复:
学了几天Go没学出啥来,就是写大括号{ }习惯写成这个样子了,而不是以前的: { }
jdwx 2013-08-21
  • 打赏
  • 举报
回复
学了几天Go没学出啥来,就是写大括号{ }习惯写成这个样子了,而不是以前的: { }
青化某 2013-08-20
  • 打赏
  • 举报
回复
问问各位go 的最大亮点在哪里? 并发?? 感觉它还没C++快啊~~
十一文 2013-08-20
  • 打赏
  • 举报
回复
引用 39 楼 hjy88168 的回复:
问问各位go 的最大亮点在哪里? 并发?? 感觉它还没C++快啊~~
并发 简洁的语法 另外 编译速度比c++不止是快一点两点
加载更多回复(37)

2,190

社区成员

发帖
与我相关
我的任务
社区描述
go语言学习与交流版
社区管理员
  • go语言社区
  • Freeman Z
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧