12.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是最顶层文件夹名,里面包含着一个个程序文件。
13.Go与Java选择结构的对比
1).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")
}
}
2).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")
}
}g
示例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")
}
}
14.Go与Java循环结构的对比
1).for循环
示例1:省略小括号
package main
import (
"fmt"
)
func main() {
for i := 1; i < 10; i++ {
fmt.Println(i)
}
}
示例2:和while相同,break,continue同java
package main
import (
"fmt"
)
func main() {
i := 0
//省略另外两项,相当于java中的while
for i < 3 {
i++
}
//break用法相同
for i == 3 {
fmt.Println(i)
break
}
}
示例3:死循环,三项均省略
package main
func main() {
for {
}
for true {
}
}
示例4:嵌套循环和java也一样,不演示了
示例5: range循环
package main
import "fmt"
func main() {
var data [10]int = [10]int{1,2,3,4,5,6,7,8,9,10}
for i, num := range data {
fmt.Println(i,num)
}
}
2).goto
package main
import "fmt"
func main() {
//goto可以用在任何地方,但是不能跨函数使用
fmt.Println("start")
//go to的作用是跳转,中间的语句不执行,无条件跳转
goto my_location //goto是关键字, my_location可以自定义,他叫标签
fmt.Println("over")
my_location:
fmt.Println("location")