征战GO旅程 NO.1

我的 GO~GO~GO 行(liu)军(shui)记(zhang)

 

大致看了一下go,包括它的变量申明,控制语句,数组切片,函数接口方法,结构体等

 

很多人说go简洁,可能有的地方简洁吧,但有的地方我还是有点很不习惯(JAVA程序猿一枚)

 

声明一个变量,关键字有2种:var,type

eg:var a int = 5

为啥要这么设计,在js中,数字、、浮点、字符串神马的都是用var来声明的,但go中有了个var,让人感觉它好像是一个弱语言。但后面又跟一个int,表明它的int型的。那既然这样,你为什么不直接 int a = 5.不就完事了吗

其实上面这段代码,也可以这么写,a := 5.编译器自动帮你转型,但为什么要var a int = 5,而不是int a = 5,我还是不明白

至于type,我还不是很明白,暂时就先不说了

 

变量的访问类型,go里面是这么设计的,Name string     age int

首字母大写代表public,首字母小写代表private。乍一听很神奇,确实省了不少代码。

但还是有问题,protected的你怎么表示。。。。还是说go就压根没有protected。保护类型用的确实少了一点,但你不能没有啊,那我需要用到保护类型的时候怎么办,估计go有他的解决方案吧,我还没学到

 

go的控制语句,设计上是这么说的,go只有一种循环,那就是for循环。go的for循环可以取代其他所有的循环 for a:=0;a<3 { a++ }              PS.差点又下意识的把大括号打上 - -

但想一下,哪门语言不是这样,难道java里面for不能代替while?存在while肯定是有的地方,用while比用for来的舒服。但go的这个for。。。好吧,等我以后用多了,可能就明白了

 

函数接口方法

今天我就是看到这一章的时候,没法坚持看完的,这也是我go学到现在(也就2天  - -)觉得设计得最不合理的地方。为什么要出现接口这个概念,就是希望接口和实现能够分离,接口定义的是标准,具体怎么实现,那是另外一件事。这也是很多时候,java要求面向接口编程的原因。

但在go里面,一方面我不能明确的看到这个接口被哪些东西实现了,并且接口和实现还写在一起,这完全违背了接口设计的初衷。代码稍微有点长,我就不贴了。总之go的这种接口方式我还是很不能适应。

 

结构体

这个玩意在java中没有,是C里面的概念。而go并不是一个完全的OO语言,我感觉这里的结构体大致可以理解成对象。不过我还是觉得用类来写比较好,但可惜的是,go没有类这个概念

 

哎~~多么伟大的一门语言(其实我也不知道伟不伟大),但就目前为止,而我感觉go优秀的地方并不多。代码比java简洁(貌似随便哪一门语言都比java代码简洁 - -),但并不一定简洁的就是好的。代码是给人看的,0011那才是给计算器看的,我总感觉代码一多,go就不太好维护了,感觉吧。

 

毕竟才学2天,不懂的还有很多。暂定一个目标吧,学完go的基础部分,再把go-web学完,做一个博客啊网站什么的,和J2EE的对比一下。既然大家都在说go很不错,那必然肯定有它的过人之处,可能我还是不太理解go的设计模式和设计思想,慢慢来吧。

 

当一个产品,完全只为满足用户的需要的时候,这个产品注定不能登峰造顶。

为什么iPhone不能XXX,没错,就不能! ---- Jobs

iPhone可以支持XXX吗,嗯,马上给你做 ---- Cook

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值