Python 可以像这样乘以字符串:
Python 3.4.3 (default, Mar 26 2015, 22:03:40)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> x = 'my new text is this long'
>>> y = '#' * len(x)
>>> y
'########################'
>>>
Golang 能以某种方式做同样的事情吗?
原文由 Duke Dougal 发布,翻译遵循 CC BY-SA 4.0 许可协议
它有一个函数而不是运算符
strings.Repeat
。这是您的 Python 示例的一个端口,您可以在 此处 运行:请注意,我使用了
utf8.RuneCountInString(x)
而不是len(x)
;前者计算“符文”(Unicode 代码点),而后者计算字节数。在"my new text is this long"
的情况下,差异无关紧要,因为所有字符都只有一个字节,但最好养成指定你的意思的习惯:由于这是一个 Python 比较问题,请注意在 Python 中,一个函数
len
根据你调用它的方式计算不同的东西。在 Python 2 中,它计算纯字符串的字节数和 Unicode 字符串的符文 (u'...'
):而在现代 Python 中,纯字符串 是 Unicode 字符串:
如果要计算字节数,则需要先将字符串编码为
bytearray
:所以 Python 有多种类型的字符串和一个函数来获取它们的长度; Go 只有一种字符串,但你必须选择与你想要的语义相匹配的长度函数。