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

649 阅读3分钟

image.png

"进阶架构师" 微信公众号,欢迎大家订阅、阅读、评论、点赞!!!!

前言

时间飞逝。有些日子,一去不复返。我们,在成长中,在变化中,一切都是为了更好的未来。

过去的过去,一切都是我们未来日子的堆积。幸福就在堆积中,一点点开花。

过去,我们主要精力,在观察,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的其中相关的一些用法。微观学习,顺利转型。加油,加油!!