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

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

前言

是时候展现真正的技术了!!我们之前,学习了,Go的new和其中行为方法。

今天,我们继续我们的脚步。

Go的内置函数和Java的默认导入包java.lang.*

为了在Java中快速开发,Java语言的创造者把一些常用的类和接口都放到到java.lang包下,lang包下的特点就是不用写import语句导入包就可以用里面的程序代码。

Go中也有类似的功能,叫做Go的内置函数,Go的内置函数是指不用导入任何包,直接就可以通过函数名进行调用的函数。

Go中的内置函数有:

close          关闭channel
len            求长度
make        创建slice,map,chan对象
append        追加元素到切片(slice)中
panic         抛出异常,终止程序
recover       尝试恢复异常,必须写在defer相关的代码块中

参考示例代码1:

package main
import "fmt"
func main() {
   array := [5]int{1,2,3,4,5}
   str := "myName"
   //获取字符串长度
   fmt.Println(len(str))
   //获取数组长度
   fmt.Println(len(array))
   //获取切片长度
   fmt.Println(len(array[1:]))
   //make创建channel示例
   intChan := make(chan int,1)
   //make创建map示例
   myMap := make(map[string]interface{})
   //make创建切片
   mySlice := make([]int,5,10)
   fmt.Println(intChan)
   fmt.Println(myMap)
   fmt.Println(mySlice)
   //关闭管道
   close(intChan)
   //为切片添加元素
   array2 := append(array[:],6)
   //输出
   fmt.Println(array2)
   //new案例
   num := new(int)
   fmt.Println(num)
}

参考示例代码2:panic和recover的使用

他们用于抛出异常和尝试捕获恢复异常

func func1() {
  fmt.Println("1")
}
func func2() {
  // 刚刚打开某资源
  defer func() {
    err := recover()
    fmt.Println(err)
    fmt.Println("释放资源..")
  }()
  panic("抛出异常")
  fmt.Println(2")
}
func func3() {
  fmt.Println("3")
}
func main() {
  func1()
  func2()
  func3()
}

Java中的java.lang包下具体有什么在这里就不赘述了,请参考JavaAPI文档:

JavaAPI文档导航:https://www.oracle.com/cn/java/technologies/java-se-api-doc.html

21.Go的标准格式化输出库fmt和java的输出打印库对比

Java的标准输出流工具类是java.lang包下的System类,具体是其静态成员变量PrintStream类。

他有静态三个成员变量:

分别是PrintStream类型的out,in,err

我们常见System.out.println(),实际上调用的就是PrintStream类对象的println方法。


Go中的格式化输出输入库是fmt模块。

fmt在Go中提供了输入和输出的功能,类型Java中的Scanner和PrintStream(println)。

它的使用方法如下:

Print:   原样输出到控制台,不做格式控制。
Println: 输出到控制台并换行
Printf : 格式化输出(按特定标识符指定格式替换)
Sprintf:格式化字符串并把字符串返回,不输出,有点类似于Java中的拼接字符串然后返回。
Fprintf:来格式化并输出到 io.Writers 而不是 os.Stdout

总结

学习,加油!


目录
相关文章
|
7月前
|
存储 JSON Go
|
7月前
|
存储 安全 编译器
|
7月前
|
移动开发 算法 编译器
OAUTH之钉钉第三方授权 | GO主题月
hello,我是小魔童哪吒,欢迎点击关注,有更新,将第一时间呈现到你的面前 胖sir:小魔童,我今天收到了一个需求,期望我们做一个第三方登录的功能,用户可以通过第三方授权来登录我们的web
217 0
|
7月前
|
Go Cloud Native
为什么要写技术文章 | GO主题月
这个问题对于每一个人来说各有各的原因。有的为了写作变现,有的为了自己的兴趣,写小说,写文章,写书。
为什么要写技术文章 | GO主题月
|
7月前
|
网络安全 Go Cloud Native
SSH连接服务器后执行多条命令 |Go主题月
大家平时有没有遇到自己连接云服务器,ssh 连接上去之后,发现自己的一些小工具用不了 例如go build无法使用 ,由于我们安装配置golang 环境的时候,是在文件/etc/profile中写了配置,因此需要source 一下/etc/profile
101 0
SSH连接服务器后执行多条命令 |Go主题月
|
7月前
|
Linux Go Windows
|
7月前
|
Go Windows Cloud Native
5个步骤搞定protoc环境安装 | GO主题月
[TOC] 胖sir:不知道你有没有这样的疑惑,工作中发现很多新接触GO的小伙伴安装protoc的环境需要折腾很久,刚才开我装环境的时候也是花了好长时间,最后如何装好的也不知原因,网上查找了各种资源,也没有一篇文章可以很好的解决这个问题.
1506 0
|
3天前
|
Java 编译器 Go
Go语言环境搭建
Go语言环境搭建
|
4天前
|
开发框架 安全 中间件
Go语言开发小技巧&易错点100例(十二)
Go语言开发小技巧&易错点100例(十二)
20 1
|
1天前
|
存储 缓存 Java
Go语言中的内存分配与释放策略
【2月更文挑战第4天】本文旨在深入探讨Go语言中的内存分配与释放策略,包括其背后的设计理念、内存分配器的实现细节以及内存释放的时机和方式。通过了解这些内容,读者可以更好地理解Go语言的内存管理特点,并在实际开发中更好地利用这些特性优化程序性能。

相关产品

  • 云迁移中心