前言
是时候展现真正的技术了!!我们之前,学习了,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
总结
学习,加油!