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

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

前言

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

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

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


目录
相关文章
|
10月前
|
存储 JSON Go
|
10月前
|
存储 安全 编译器
|
10月前
|
移动开发 算法 编译器
OAUTH之钉钉第三方授权 | GO主题月
hello,我是小魔童哪吒,欢迎点击关注,有更新,将第一时间呈现到你的面前 胖sir:小魔童,我今天收到了一个需求,期望我们做一个第三方登录的功能,用户可以通过第三方授权来登录我们的web
260 0
|
10月前
|
Go Cloud Native
为什么要写技术文章 | GO主题月
这个问题对于每一个人来说各有各的原因。有的为了写作变现,有的为了自己的兴趣,写小说,写文章,写书。
为什么要写技术文章 | GO主题月
|
10月前
|
网络安全 Go Cloud Native
SSH连接服务器后执行多条命令 |Go主题月
大家平时有没有遇到自己连接云服务器,ssh 连接上去之后,发现自己的一些小工具用不了 例如go build无法使用 ,由于我们安装配置golang 环境的时候,是在文件/etc/profile中写了配置,因此需要source 一下/etc/profile
119 0
SSH连接服务器后执行多条命令 |Go主题月
|
10月前
|
Linux Go Windows
|
10月前
|
Go Windows Cloud Native
5个步骤搞定protoc环境安装 | GO主题月
[TOC] 胖sir:不知道你有没有这样的疑惑,工作中发现很多新接触GO的小伙伴安装protoc的环境需要折腾很久,刚才开我装环境的时候也是花了好长时间,最后如何装好的也不知原因,网上查找了各种资源,也没有一篇文章可以很好的解决这个问题.
1540 0
|
5天前
|
人工智能 Go 调度
掌握Go并发:Go语言并发编程深度解析
掌握Go并发:Go语言并发编程深度解析
|
2天前
|
存储 Go
用Go语言实现一个单协程消费者模型
用Go语言实现一个单协程消费者模型
13 0
|
2天前
|
编译器 Go C语言
一文速通Go语言面向对象编程
一文速通Go语言面向对象编程
9 0