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