一,string切片
1、string的底层是一个byte数组
package main
import "fmt"
func main() {
var str string = "hellocat"
var slice = str[1:3]
fmt.Println(slice)
}
2、string是不可变的,也就说不能通过str[0]= 'z'方式来修改字符串
package main import "fmt" func main() { var str string = "hellocat" str[0] = "z" fmt.Println(str) }
3、如果需要修改字符串,可以先将string -> []byte /或者[]rune-> 修改->重写转成string
package main
import "fmt"
func main() {
var str string = "hellocat"
//[]byte转换只能字母和数字
bytes := []byte(str)
bytes[0] = 'l'
s := string(bytes)
fmt.Println(s)
//使用[]rune可以处理汉字
runes := []rune(s)
runes[1] = '好'
i := string(runes)
fmt.Println(i)
}
练习一
package main
import "fmt"
//定义一个函数
func test1(n int)([]uint64) {
//床建一个切片
slice := make([]uint64, n)
//判断n的范围当n小于2,只输出一个
if n == 1 {
slice[0] = 1
return slice
} else {
slice[0] = 1
slice[1] = 1
for i := 2; i < n; i++ {
slice[i] = slice[i-2] + slice[i - 1]
}
}
return slice
}
func main() {
slice := test1(3)
fmt.Println(slice)
}