golang的内置函数共有十五个,不需要使用import
引入便可以直接使用的函数。
make函数主要用来初始化和创建一个对象的,针对map(集合),slice(切片),channel(通道)类型,注意只支持这三种类型。
package main
func main() {
var test_map map[string]string //创建map集合
test_map = make(map[string]string) //初始化map(又或者叫实例化对象,我喜欢这么理解,如果有错误欢迎指正)
test_map["hello"] = " world"
println(test_map["hello"]) //返回: world
}
new的功能与make所实现的功能基本一样,可以实现“初始化”map,slice,channel,但它和make工作原理有很大区别,make可以为一个默认值为nil的类型初始化,初始化后这个值为空,什么都没有,而new所实现的是指向一个新的变量或方法,函数的内存地址,并为其创建默认值为0,下面来看例子
package main
import (
"fmt"
)
func main() {
a := new(int)
*a++
len函数可以得到数组,切片,map,string等类型的数据类型长度,注意这里结构体(struct)int(整数型)和布尔型不能传入len函数使用
package main
import "fmt"
func main() {
a := "hello"
fmt.Println(len(a)) //返回:5
}
//注意中文与英文所占用的字节数不同,根据编码的不同也不同,此处简单演示,有兴趣的可以自己研究一下
//golang的编码默认为utf-8,空格也算一个字节
cap的功能是返回变量等类型的容量,这里使用数组来简单演示
package main
import (
"fmt"
)
func main() {
var my_slice = [4]int{1, 2, 3, 4} //数组需要设置容量,容量长短是从1开始算起,而索引是0
fmt.Println(cap(my_slice)) //返回:4
}
append为添加内容到切片的尾部
package main
import (
"fmt"
)
func main() {
var my_slice = []int{1, 2, 4}
my_slice = append(my_slice, 1, 2, 3, 2)
fmt.Println(my_slice)
}
主要用于复制数组,将第二个参数的数组切片复制到第一个数组切片中,如果长度不一样,以短数组为准。
package main
import (
"fmt"
)
func main() {
my_slice := []int{1, 2, 3}
my_slice1 := []int{4, 5, 6}
a := copy(my_slice, my_slice1)
fmt.Println(a) //返回:[4 5 6]
}
用于删除map的参数,参数对应map的key
package main
import (
"fmt"
)
func main() {
my_map := map[string]string{
"hello": "world",
"lo": "ve",
}
fmt.Println(my_map) //map[hello:world lo:ve]
delete(my_map, "hello")
fmt.Println(my_map) //map[lo:ve]
}
用于错误处理,执行到panic时会停止所有操作并打印从下向上的信息
package main
import (
"fmt"
)
func main() {
test()
}
func test() {
a := 2
b := 3
if a > b {
fmt.Println("good")
} else {
panic("error") //如果遇到不符合条件的或你设置的非法操作便会打印错误,并会打印从“error”向上返回的函数栈
println("hello world") //未被打印
}
}
用于程序出现了异常,如果不去管它,那程序会直接挂掉,而recover的功能是捕获异常,返回异常信息,并继续执行下去
package main
var x = 1
func main() {
Reset()
}
func Reset() {
if x := recover(); x != 2 {
panic("x is nil")
}
println("hello world") //可以自己尝试panic后输出信息,不会有任何输出
}
用于关闭channel
属于输出到标准错误流中并打印,官方不建议写程序时候用它,可以在debug时使用
bool类型的两个常量值;真 or 假
用在连续枚举的声明中,使用它可以记住变化的值
指针或引用类型的变量默认值是nil
空白标识符,单独拿出来说一下,一般是用来用来声明一个空白变量,go中声明的变量必须使用否则编译时会报错,如果想先起到占位的作用就需要它。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。