当前位置: 首页 > 科技观察

为什么Java开发者应该选择Go?

时间:2023-03-17 01:34:38 科技观察

我三年前开始使用Go。那时,Go已经存在了十多年。感谢以下三位杰出的程序员,他们让Go出现在了我们的面前。Go是一种开源编程语言,可以轻松构建简单、可靠和高效的软件。—golang.org我从事Java程序员已有十多年了。时至今日,我的工作离不开Java,但我会越来越多地选择使用Go来解决问题,甚至推荐同事在工作中使用Go,但人们会互相鼓励使用Java吗?我不这么认为!为什么要使用围棋?得益于从Java到Java的多平台垃圾回收,一旦我们从C迁移到Java,现在我们也被一个完善的Java生态系统所包围。尽管如此,容器的出现,Docker和Kubernetes的兴起,突然间人们发现了Go,你需要了解它,然后爱上它,然后放弃Java。它不会那么炫耀,但您会多一个工具,一个非常方便的工具。我对使用Go的回答很简单:简单和速度接下来,我简单说一下Go的优点以及为什么要学习Go。简单性和速度Go和Java有很多共同点:C系列(命令、花括号)静态类型的垃圾收集内存安全(零引用、运行时边界检查)变量总是被初始化(零/零/假)方法接口类型断言(instanceof)反射然而,Go几乎在所有方面都需要更简洁、更短的代码来实现相同的功能。看下面的代码:显然Go在Java中用少了几倍的代码实现了相同的并发线程功能。方法定义:Java只支持一个返回值,如果需要多个返回值,需要定义一个Object。Go支持多个返回值funcfoo()(string,bool){}类:Java有类Go有Struct,而Struct不需要getter/setter和toStringorequals接口:在Java中我们有特定的接口类型:interface,接口中的方法由继承接口的类专门实现。Go也有接口函数,但是你不需要在Go中显式声明接口实现,只需结构体(即Java中的类)来实现接口中的方法。typeShapeinterface{Print()}typeRectanglesstruct{widthintheightint}func(r*Rectangle)Print(){fmt.println("Rectangle!");}上面的代码是使用Go接口的简单例子,比Java更简洁,更灵活。甚至for循环也更灵活:在Java中我们使用:for(inti=0;i