我不明白为什么添加未按预期工作。如果键大于长度,则应创建行...make一切正常(示例),但这不是动态的。
package main
import (
"fmt"
"strings"
)
func main() {
//lines := make([]string, 10, 10)
var lines []string
addToLine(lines, 0)
addToLine(lines, 1)
addToLine(lines, 2)
fmt.Println(strings.Join(lines, "\n"))
}
func addToLine(lines []string, lNum int) {
lNum++
for len(lines) <= lNum {
lines = append(lines, "")
}
lines[lNum] += "test line"
}
您覆盖了lines
函数内部的addToLine()
内部变量,但不返回突变的片段。
如果您将其退回,将按预期工作:
package main
import (
"fmt"
"strings"
)
func main() {
//lines := make([]string, 10, 10)
var lines []string
lines = addToLine(lines, 0)
lines = addToLine(lines, 1)
lines = addToLine(lines, 2)
fmt.Println(strings.Join(lines, "\n"))
}
func addToLine(lines []string, lNum int) []string {
lNum++
for len(lines) <= lNum {
lines = append(lines, "")
}
lines[lNum] += "test line"
return lines
}