decodeRuneInStringInternal 有什么区别

在golang的std包中,“func decodeRuneInternal”和“func decodeRuneInStringInternal”除了args外是相同的,即:


func decodeRuneInternal(p []byte) (r rune, size int, short bool)

func decodeRuneInStringInternal(s string) (r rune, size int, short bool)

为什么不将 decodeRuneInStringInternal 定义为:


func decodeRuneInStringInternal(s string) (r rune, size int, short bool) {

    return decodeRuneInternal([]byte(s)) (r rune, size int, short bool)

}

在 utf8.go 中,decodeRuneInStringInternal 的实现与 decodeRuneInternal 相同。


为什么?


隔江千里
浏览 201回答 1
1回答

慕码人8056858

这两个函数避免了[]byte(s)字符串函数包裹[]byte函数时转换string(p)中的内存分配,或[]byte函数包裹字符串函数时转换中的内存分配。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go