GO语言因其并行机制出现在大众的视野中,Go编译到机器码非常的快速,它是快速的、静态类型编译语言,但是感觉上是动态类型,解释型语言,要说响应式编程应该reactive,webflux,RXJava,netty这几个词要关联性高一些,当然Go不针对这一块。
Java转Go是非常简单又困难的,简单的是基本的语法是90%在通用的,只有差异,但大多语法还是通用,困难的是编程习惯,Go提倡一种事情有且只有一种方法完成,比如没有++i,只有i++,很多变量声明条件又像js或者java新版本语法,需要你摒弃以前的思维去学习,Go是教你如何使用而不是为什么
学习Go语言作者说用 Go 写程序会非常开心!而事实证明拥有编程思维的你去学习Go时,实在是不开心,往往都是因为语法的编程习惯而需要重新检查demo
1.Hello World
准备环境:vscode,Go语言SDK,
package mainimport "fmt"func main(){fmt.Println("hello")}
注意:未曾使用的包导入会报错,语句结束另起一行,不需要;结尾,也就是每一条语句占用一行
package mainimport "fmt"import "unsafe"func main(){fmt.Println("hello")var n1=100fmt.Printf("n1 的类型%T \n",n1)var n2 int64=10fmt.Printf("n2 的类型%T \n n2字节数 %d",n2,unsafe.Sizeof(n2))var c2 byte='a'fmt.Println("c2=",c2)var b=falsefmt.Println("b=",b)var address string="ndjasndqjd1"fmt.Println(address)var n3 int32=12var n4 int64var n5 int8n4=int64(n3)+20n5=int8(n3)+20fmt.Println("n4=",n4,"n5=",n5)fmt.Sprintf("%d",n4)fmt.Sprintf("n4的地址",&n4)a :=100fmt.Println(a)for i :=0;i<=10;i++{fmt.Println("hello",i)}fmt.Println("***********************")var num int=9for i:=1;i<=num;i++{for j:=1;j<=i;j++{fmt.Printf("%v * %v=%v \t",j,i,j*i)}fmt.Println()}for i:=0;i<4;i++{for j:=0;j<10;j++{if j==2{continue}fmt.Println("j=",j)}}}
整体的语法是对java的一个简化,目前学习进度在面向对象编程一篇,带着问题看Go如何解决并体验并行的快乐
如果你渴望学习新语言,并体验并行多核带来的体验,可以接触下Go,并在github,gitee上找到demo项目运行。