我正在阅读Go编程语言书(Donovan和Kernighan)和他们的例子echo1,他们说:“这是一个二次过程,如果参数的数量很大,可能会很昂贵,但对于回声,这不太可能“。二次过程意味着什么?如果参数的数量很大,它的代价是多少?
感谢。
答案 0 :(得分:5)
一般来说,二次方意味着与平方数有关的东西。在这种情况下,它意味着过程的成本与输入大小的平方成正比。这是因为使用+=
运算符连接字符串,这在Go中很昂贵,因为字符串是不可变的,并且每次连接时都必须在内存中创建新字符串。更有效的连接字符串的方法包括写入bytes.Buffer
并将其转换为字符串,或使用strings.Join
函数