Java程序员如何学习Golang(一)(golang java 学哪个)

createh53个月前 (01-23)技术教程40

不会golang的程序员不是好的java程序员,现在的docker、k8s,以及其他一些中间件很多都是采用golang语言开发,作为一个java程序员,不能只会用他们,还是应该多了解一些底层原理性的东西,才不至于被淘汰。

废话不多说,学习golang之前,我们先安装一些golang的环境,可以在https://golang.google.cn/dl/ 下载最新的golang安装包,和java一样,安装按照提示一步一步安装就好,没有什么特别的配置。然后是IDE,我们可以用jetbrains的产品Goland,和java版的IDE是一样的操作界面,这里就介绍安装了,大家可以自己百度。

现在我们开始创建一个项目



里面只有一个go.mod文件,这个就类似pom文件,管理项目的包依赖的

我们新建一个叫main的go文件,开始我们的hello world



这里稍微解释一下,要执行main函数的文件的包名,也得必须是叫main,golang的包的作用和java里的差不多,主要是:

1. 区分相同文件的函数,变量等标识符

2. 当程序文件很多的时候,可以很好地管理项目

3.控制函数。变量等访问范围,即作用域

java中一个文件就是一个和类同名的文件,go中一个文件就是包含一堆函数的文件,文件和类没有什么关系,如果你高兴,把所有代码写在一个文件里也没有关系。

没有java中public、protected、private等访问控制修饰符,它是通过字母大小写来控制可见性的,如果定义的常量、变量、类型、接口、结构、函数等的名称是大写字母开头表示能被其它包访问或调用(相当于public),非大写开头就只能在包内使用(相当于private,变量或常量也可以下划线开头)

函数定义格式是下面这个样子的,如果有返回值可以在括号后面添加返回值的类型,如果没有就可以不用写

fun function_name ([parameter list]) [return_types] { 函数内容}



上面的是go支持的数据类型,数字类型相比java,做了按长度做了更细粒度的划分,注意一点如果使用uint、int 声明变量,类型长度取决于 CPU,如果是32位CPU就是4个字节,如果是64位就是8个字节,所以才看到位数是32或64位。


go的变量声明方式和java也不太一样,需要var关键字声明变量,数据类型是放在变量名的后面,同时也可以使用:= 的方式直接给变量赋值,go会根据值推断数据类型


关于变量和常量的定义和注意点可以参考下图

相关文章

35个可以提高千倍效率的Java代码小技巧

代码优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是...

Android L 64位模拟器终于来了:x86独享

Google I/O 2014大会已经过去了很久,64位的Android L依然停留在纸面上,但现在至少可以让开发者们先行品尝品尝了:64位的Android L模拟器已经发布。这次公布的模拟器镜像是专...

《Servlet》第02节:Tomcat运行环境及目录结构介绍

Tomcat是使用Java语言开发的一个开源免费的Web服务器,1、安装Tomcat容器我们作为初学者,这里直接使用Tomcat作为Servlet的运行容器,首先需要去Apache官网下载Tomcat...

详解JVM中的Java对象(java的jvm是指)

文章目录对象的创建第一步:对象内存的分配指针碰撞(Bump the Pointer)空闲列表(Free List)内存分配的线程安全问题第二步:对象属性的初始化第三步:对象构造函数的执行对象的内存布局...

AMD 64位ARM处理器开卖:只是开发板

2014-08-01 09:00:00 [ 驱动之家 转载 ] 5月份,AMD公开展示了自家的第一颗ARM架构处理器“Opteron A1100”,代号“西雅图”(Seattle)。与之搭配的是一套开...

这10种分布式ID,太绝了!(分布式id的作用)

前言分布式ID,在我们日常的开发中,其实使用的挺多的。有很多业务场景在用,比如:分布式链路系统的trace_id单表中的主键Redis中分布式锁的key分库分表后表的id今天跟大家一起聊聊分布式ID的...