关于golang:golang基本类型

68次阅读

共计 819 个字符,预计需要花费 3 分钟才能阅读完成。

1. 简略 demo

a := 20
b := 20
fmt.Printf("a:%d",a)
fmt.Println()
fmt.Printf("b:%d",b)
fmt.Println()
changeA(&a) // 指针拷贝
changeB(b) // 值拷贝
fmt.Printf("after changeA a:%d",a)
fmt.Println()
fmt.Printf("after changeB b:%d",b)
func changeA(a *int){*a = 100}
func changeB(b int){b = 100}
-- 后果
a:20
b:20
after changeA a:100
after changeB b:20
指针拷贝会批改传递过去的值,值拷贝仅仅批改拷贝后的值
当须要批改传入的参数原来的值或者传入的对象比拟大的时候,能够应用指针传递
golang 中援用类型的申明默认是没有初始化的,定义一个指针后,该指针是 nil
能够通过 new 进行初始化。

2.make

new 性能雷同的还有 make,make 只对 slice、mapchan 进行初始化,slice、mapchan 必须通过 make 初始化后,才能够操作
func make(t Type, size ...IntegerType) Type
make 返回的是指针类型
new 对指针进行初始化,返回指针类型对应的默认值,并能够对指针变量进行赋值

3.map 找子字符串个数

str := "a b c ab c a do do i i test am you"
mapC := make(map[string]int)
strArr := strings.Split(str, " ")
fmt.Println(strArr)
for k := range strArr {mapC[strArr[k]] = mapC[strArr[k]] + 1
}
fmt.Println(mapC)
--
[a b c ab c a do do i i test am you]
map[a:2 ab:1 am:1 b:1 c:2 do:2 i:2 test:1 you:1]

正文完
 0