小编Geo*_*oun的帖子

从字符串转换时如何确定 []rune 的容量

有人可以解释为什么我转换相同,当有不同容量string[]rune

看看这个代码

package main

import (
    "fmt"
)

func main() {
    input := "??"
            
    runes := []rune(input)

    fmt.Printf("len %d\n", len(input))
    fmt.Printf("len %d\n", len(runes))
    fmt.Printf("cap %d\n", cap(runes))

    fmt.Println(runes[:3])

}
Run Code Online (Sandbox Code Playgroud)

哪个返回

len 6
len 2
cap 2
panic: runtime error: slice bounds out of range [:3] with capacity 2
Run Code Online (Sandbox Code Playgroud)

但是当评论fmt.Println(runes[:3])它返回时:

len 6
len 2
cap 32
Run Code Online (Sandbox Code Playgroud)

看看 [] 符文容量如何从 2 变为 32。如何?为什么 ?

如果你想测试 =>去游乐场

string casting go rune

2
推荐指数
1
解决办法
96
查看次数

标签 统计

casting ×1

go ×1

rune ×1

string ×1