前言
周一了,不知道大家都忙么。有没有好好地学习呢?嘻嘻,今天,我抽时间,又把Java与Go之间进一步做了对比。
那么,我们就来聊一下,今天对比的部分内容。
常用包
众多周知,开发过程中,更多的时候,在使用开发包来辅助开发。那么,具体的情况是什么样子的呢?
我们可以从以上表格看到常用操作的包明细。
想要学习更多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。