前言
时间飞逝。有些日子,一去不复返。我们,在成长中,在变化中,一切都是为了更好的未来。
过去的过去,一切都是我们未来日子的堆积。幸福就在堆积中,一点点开花。
过去,我们主要精力,在观察,Java与Go的能力对比。今天,我们继续对比,让我们能够好好学习Go,完成顺利转型。
Go与Java文件后缀对比
正如我们熟悉的,Java的编译文件是.class文件结尾,多个.class文件打成一个可执行文件,.jar文件结尾,.jar不能直接在windows和linux上执行,得用java命令,依托JVM虚拟机执行。
Go语言中的程序文件后缀为.go,有main包main函数。.go文件打包成二进制对应操作系统的可执行程序,如windows上的.exe结尾的可执行程序。
Java的类库上会以.jar结尾,Go语言非main包没有main函数的程序会编译打包成为一个类库,以.a结尾,也就是Go语言的类库,以.a结尾。
Go的类库如下:
包名.a my_util.a
注:my_util是最顶层文件夹名,里面包含着一个个程序文件。
Go与Java选择结构的对比
Go中的if
Go中的if和java中的if使用基本相同,只不过是小括号给去掉了。
示例1:
package main import ( "fmt" ) func main() { /* 单分支结构语法格式如下: if 条件判断 { //代码块 } */ var num int fmt.Printf("请输入数字") fmt.Scan(&num) if num > 10 { fmt.Println("您输入的数字大于10") } }
示例2:
package main import ( "fmt" ) func main() { /* if else分支结构语法格式如下: if 条件判断 { //代码块 } else { //代码快2 } */ var num int fmt.Printf("请输入数字") fmt.Scan(&num) if num > 10 { fmt.Println("您输入的数字大于10") } else { fmt.Println("您输入的数字不大于10") } }
示例3:
package main import ( "fmt" ) func main() { /* if else分支结构语法格式如下: if 条件判断 { //代码块 } else if 条件判断{ //代码块2 } else { //代码块3 } */ var num int fmt.Printf("请输入数字") fmt.Scan(&num) if num > 10 { fmt.Println("您输入的数字大于10") } else if num == 10{ fmt.Println("您输入的数字等于10") } else { fmt.Println("您输入的数字小于10") } }
switch
示例1:
package main import ( "fmt" ) func main() { var a = "li_ming" switch a { case "li_ming": fmt.Println("Hello!LiMing") case "xiao_hong": fmt.Println("Hello!XiaoHong") default: fmt.Println("No!") } }
示例2:一分支多值
package main import ( "fmt" ) func main() { var name = "li_ming" var name2 = "xiao_hong" switch name { //li_ming或xiao_hong 均进入此 case "li_ming", "xiao_hong": fmt.Println("li_ming and xiao_hong") } switch name2 { case "li_ming", "xiao_hong": fmt.Println("li_ming and xiao_hong") } }
示例3:switch表达式
package main import ( "fmt" ) func main() { var num int = 11 switch{ case num > 10 && num < 20: fmt.Println(num) } }
示例4:fallthrough下面的case全部执行
package main import ( "fmt" ) func main() { var num = 11 switch { case num == 11: fmt.Println("==11") fallthrough case num < 10: fmt.Println("<12") } }
总结
学习是一件持续的事情。今天我们从我们熟悉的Java方向角度,去学习了Go的其中相关的一些用法。微观学习,顺利转型。加油,加油!!