与Golang和Python之间的字符串“+”操作有什么不同?

时间:2016-10-01 13:34:15

标签: python go

我在Go上发现String的“+”操作非常缓慢:

func main() {
    start := time.Now();
    s := ""
    for i:=0;i<100000;i++ {
        s += "test"
    }
    end := time.Now();
    fmt.Println(end.Sub(start))    //Output 6.495225211s
}

但是Python:

start = datetime.now()

s = ""

for i in range(100000):
    s += 'test'

end = datetime.now()

print(end - start)    # Output 0:00:00.020291

我知道如何优化Go代码。 我希望你能告诉我原因。

感谢。

我在Python上发现了一件有趣的事情:

s = ""
for i in range(20):
    s += 'test'
    print(id(s))

输出是:

  

139842066321960

     

139842066396912

     

139842066396912

     

139842066400072

     

139842066400072

     

139842067023232

     

139842067023232

     

139842066384304

     

139842066384304

     

139842066312528

0 个答案:

没有答案