优雅golang_Go简介–简洁而优雅

优雅golang

虽然我通常只尝试使用“黄油黄油”语言(例如php,python,java和C#),但我的上一个项目涉及以Google自己的旗舰Go语言编写的Google appengine网络应用。

作为一个总是对新语言感兴趣的多语种,我不禁对它如何用Go编码感到好奇,因此我开始了这个项目。 我使用Go进行编码的经验非常令人满足,我不禁与您分享。

Go将优雅与力量完美地融合在一起:对于以任何语言编写和维护应用程序,可读性都是非常重要的功能。 随着您的项目规模越来越大,这变得越来越重要。 实际上,您甚至准备牺牲通过C之类的低级语言获得的一些性能提升,以通过诸如Java和python这样的更具“可读性”的语言来实现开发人员的生产力。 这个因素部分地解释了为什么现在越来越少的程序用C / C ++编码,而越来越多的Java编码。 它还解释了python的最新流行,它是与同级Java和C ++相比的一种解释性且相对“低性能”的语言。

Go带来的好处是可读性和性能的完美结合。 是的,令人难以置信,但却是真实的! 它具有编译器和最强大的类型系统(如C / C ++),并结合了诸如python之类的动态语言的语法。 它甚至具有可媲美python的简单性。

从语法上讲,Go基于C ++,但是进行了许多修改,使其易于使用,例如:

  1. 没有分号(;)结束语句;
  2. 不需要像C(int i = 2;)这样的类型声明。 在Go中,类型会自动从值(i:= 2)中“猜测”。
  3. 没有包含大括号的必需语句,例如for和if。

这里的示例将有助于理解Go的不同之处和更好之处。 考虑一下C ++中的一个简单的平方根计算函数:

float Sqrt(float x) {
    int z = 1.0;
    for (int i= 0; i < 1000; i++) {
        z -= (z*z - x) / (2 * z);
    }
    return z;
}

现在这里是用Go编写的相同函数:

package newmath
 
func Sqrt(x float64) float64 {
    z := 1.0
    for i := 0; i < 1000; i++ {
        z -= (z*z - x) / (2 * z)
    }
    return z
}

您注意到Go的几件事了吗? 例如:

  1. 更少的笨拙性:不需要哈希,不需要在ifs / fors上花括号,也不需要分号来结束语句(某些人可能会争论分号,说它使您可以在一行上快速组合多个语句,但是您意识到少了多少这样创建的可读代码?)
  2. 动态性:: =是Go中的“短赋值”运算符,意味着您无需指定其类型。 与“ float z = 10;”相比,“ z:= 1.0”无疑更优雅。
  3. 高效的编译:尽管该语言具有动态性质,似乎暗示了它的解释性质,但Go的编译和运行效率与C / C ++等低级语言一样有效。

在Go上投入技能的另一个原因是Go得到了Google的支持 。 实际上,该语言本身就是Google的发明,并且Google已开始在其大多数项目(例如Google Appengine云托管服务)中实施该语言。

一场可能会间接为Go的成功铺平道路的争论是,迫在眉睫的Oracle与Google诉讼日益临近,Oracle指控谷歌错误地使用其受版权保护的Java API来实现其Android操作系统。 Oracle完全不可能摆脱它的要求,但是如果对此的不确定性持续更长的时间,那么谷歌很有可能会逐渐开始以Go语言构建其Android API,并逐渐放弃Java API。

现在我不是算命先生,但是从当前的定位来看,Go看起来不会像很快就会消失的语言。

您可以查看官方的Go文档,教程以及下面参考中提供的库和实用程序列表。 快乐学习Go语言!

注意:如果您正在运行基于Ubuntu的ubuntu之类的基于Linux的linux系统,则可以使用CLI安装golang:

sudo apt-get install gccgo

翻译自: https://www.javacodegeeks.com/2014/06/an-introduction-to-go-elegance-with-power-and-simplicity.html

优雅golang

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值