Goの[]byte -> stringへのcastってshrinkするんですか?
珍しく技術系の投稿をします(ただし疑問、忘備録
tooEnoughBuf := make([]byte, tooEnoughSize) Write1(tooEnoughBuf, src) string(tooEnoughBuf) == string(src) // false
をしたい時のbufの長さをshrinkする方法を考えています。
なぜこの等価判定がfalseになるかというと
len(tooEnoughBuf) == len(src)
がfalseになるからですね。
func shrinkString(s string) string { var eos byte buf := make([]byte, 0) for _, b := range []byte(s) { if b == eos { break } buf = append(buf, b) } return string(buf) }
のような実装を与えてあげればいいのだろうか・・・?わからない・・・