慢聊Go之GoVSJava之微观比较(2)|Go主题月

简介: 慢聊Go之GoVSJava之微观比较(2)|Go主题月

前言

周一了,不知道大家都忙么。有没有好好地学习呢?嘻嘻,今天,我抽时间,又把Java与Go之间进一步做了对比。

那么,我们就来聊一下,今天对比的部分内容。

常用包

众多周知,开发过程中,更多的时候,在使用开发包来辅助开发。那么,具体的情况是什么样子的呢?

image.png

我们可以从以上表格看到常用操作的包明细。

想要学习更多Go中文API文档,Go的API包文档

Go的常用基础数据类型和Java的基础数据类型对比

Go中的常用基础数据类型
1.布尔型:关键字【bool】: true   false
2.有符号整形:头一位是代表正负
            int   默认整形   4或8字节              32位或64位     
            int8             1字节                     8位
            int16            2字节                     16位
            int32            4字节                     32位
            in64             8字节                     64位
          【int是32还是64位取决于操作系统的位数,现在电脑一般都是64位的了,所以一般都是64位】
3.无符号整形
            uint             4或8字节             32位或64位
            uint8             1字节                     8位
            uint16            2字节                     16位
            uint32            4字节                     32位
            uint64            8字节                     64位
4.浮点型
            注:go语言没有float类型,只有float32和float64。
            float32           32位浮点数  
            float64           64位浮点数
5.字符串
            string
6. byte     等同uint8,只是类似于一个别名的东西
   rune     等同int32  只是一个别名,强调表示编码概念对应的数字
Go中派生数据类型
注:这里简单列举一下
指针    Pointer
数组    Array[]
结构体   struct
进程管道: channel 
函数     func
切片    slice
接口    interface
哈希     map

Go和Java的变量对比

Go的变量
package main
import(
   //包含print函数
   "fmt"
)
func main() {
   //var  变量名  变量类型 = 变量值
   var name string = "xiao_li"
   //方法内部可以直接使用 【 变量名 := 变量值 】 赋值,方法外不可以
   name2:="xiao_hong"
   fmt.Println("name = ",name)
   fmt.Println("name2 = ",name2)
}
Java的变量
public class test {
    public static void main(String[] args) {
        //变量类型  变量名 = 变量值
        String name = "xiao_li";
        int i = 10;
        System.out.println("name ="+name);
        System.out.println("i ="+i);
    }
}

Go和Java的常量对比

Go的常量

Go中的常量和Java中的常量含义有一个本质的区别: Go中的常量是指在编译期间就能确定的量(数据),而java中的常量是指被赋值一次后就不能修改的量(数据)。 所以两者不一样,因为Java中的常量也是JVM跑起来后赋值的,只不过不允许更改; Go的常量在编译后就确实是什么数值了。

package main
import(
   //包含print函数
   "fmt"
)
func main() {
   //const  常量名  常量类型 = 常量值   显示推断类型
   const name string = "const_li_ming"
   //隐式推断类型
   const name2 ="const_xiao_hong"
   fmt.Println("name = ",name)
   fmt.Println("name2 = ",name2)
}
Java的常量
public class test {
    //【访问修饰符】 【静态修饰符】final修饰符   常量类型   常量名 =  常量值;
    public static final String TAG = "A";    //一般设置为static静态
    public static void main(String[] args) {
        System.out.println("tag= "+TAG);
    }
}

Go与Java的赋值对比

Go的赋值

Go方法内的赋值符号可以用 := ,也可以用 =,方法外只能用 = 。

package main
import(
   //包含print函数
   "fmt"
)
//方法外只能用 = 赋值
var my_name  string = "my_name"
var my_name2 = "my_name2"
//my_name3:="my_name3"    不在方法内,错误
func main() {
   fmt.Println("name = ",my_name)
   fmt.Println("name2 = ",my_name2)
}

Go支持多变量同时赋值:

package main
import(
   //包含print函数
   "fmt"
)
func main() {
   //多变量同时赋值
   var name,name2 = "li_ming","xiao_hong"
   fmt.Println("name = ",name)
   fmt.Println("name2 = ",name2)
}

Go丢弃赋值:

package main
import(
   //包含print函数
   "fmt"
)
func main() {
   //丢弃赋值    把 1和2丢弃 只取3
   //在必须一次取两个以上的值的场景下,又不想要其中一个值的时候使用,比如从map中取key,value
   var _,_,num = 1,2,3
   fmt.Println("num = ",num)
}
Java的赋值
public class test {
    public static void main(String[] args) {
        //直接用 = 赋值
        String name = "li_ming";
        int i = 10;
        System.out.println("name ="+name);
        System.out.println("i ="+i);
    }
}
总结

跟着之前学习Java的脚步,我们一步步的分析,Go与Java的对比。

作为一名Javaer转型Goer 其实是so easy。

目录
相关文章
|
Go Cloud Native
为什么要写技术文章 | GO主题月
这个问题对于每一个人来说各有各的原因。有的为了写作变现,有的为了自己的兴趣,写小说,写文章,写书。
为什么要写技术文章 | GO主题月
|
网络安全 Go Cloud Native
SSH连接服务器后执行多条命令 |Go主题月
大家平时有没有遇到自己连接云服务器,ssh 连接上去之后,发现自己的一些小工具用不了 例如go build无法使用 ,由于我们安装配置golang 环境的时候,是在文件/etc/profile中写了配置,因此需要source 一下/etc/profile
169 0
SSH连接服务器后执行多条命令 |Go主题月
|
存储 JSON Go
|
存储 安全 编译器
|
移动开发 算法 编译器
OAUTH之钉钉第三方授权 | GO主题月
hello,我是小魔童哪吒,欢迎点击关注,有更新,将第一时间呈现到你的面前 胖sir:小魔童,我今天收到了一个需求,期望我们做一个第三方登录的功能,用户可以通过第三方授权来登录我们的web
323 0
|
Linux Go Windows
|
Go Windows Cloud Native
5个步骤搞定protoc环境安装 | GO主题月
[TOC] 胖sir:不知道你有没有这样的疑惑,工作中发现很多新接触GO的小伙伴安装protoc的环境需要折腾很久,刚才开我装环境的时候也是花了好长时间,最后如何装好的也不知原因,网上查找了各种资源,也没有一篇文章可以很好的解决这个问题.
1633 0
|
Go C语言 Cloud Native
GO基础知识分享2 | GO主题月
[TOC] 兵长:胖sir,咋还在看基础知识嘞?你以前可不是这样的哦 胖sir:切,我今天看的和之前的可不一样 兵长:有啥不一样的,你能给我说出花来嘛 胖sir:小样,你自己好好看看 兵长:看看就看看
107 0
|
安全 编译器 Serverless
GO基础知识分享 | GO主题月
兵长:哟,最近在干啥呢 胖sir:在看我之前的go基础学习资料呢,回顾一下 兵长:那给我分享一下呗,我也想回顾回顾 胖sir:用你的小手指点开你的手机,我来传给你 兵长:你信不信我的小手指可以带你飞整个峡谷 . . .
|
存储 JSON 缓存
JWT身份认证(附带源码讲解) | GO主题月
一天,正是午休时段 兵长路过胖sir座位,大吃一惊,今天胖sir居然没有打呼噜,而是在低着头聚精会神盯着一本书 兵长凑近一看,胖sir居然在看史书...
141 0