前言#
今天的函数也比较简单,就是字符串的复制拼接,如果不使用这个函数而使用..
操作符也是可以的,但是还得用到循环和反复申请空间,既费时又费力,有了这个函数就方便多了,我们一起来看一下。
string.rep()##
- 原型:string.rep(s, n)
- 解释:返回字符串
s
串联n
次的所组成的字符串,参数s
表示基础字符串,参数n
表示赋值的次数。
Usage##
- 首先新建一个文件将文件命名为reptest.lua然后编写如下代码:
-- 普通字符串
local sourcestr = "this is a string "
print("\nsourcestr is : "..sourcestr)
-- 使用函数拼接
local first_ret = string.rep(sourcestr, 3)
print("\nfirst_ret is : "..first_ret)
-- 使用操作符`..`拼接
local second_ret = sourcestr
for i=1, 2 do
second_ret = second_ret..sourcestr
end
print("\nsecond_ret is : "..second_ret)
-- 字符串里包括`\0`
local otherstr = "this is a string \0 hahaha "
print("\notherstr is : "..string.format("%q", otherstr))
-- 再次使用函数拼接
first_ret = string.rep(otherstr, 3)
print("\nfirst_ret is : "..string.format("%q", first_ret))
-- 再次使用操作符`..`拼接
second_ret = otherstr
for i=1, 2 do
second_ret = second_ret..otherstr
end
print("\nsecond_ret is : "..string.format("%q", second_ret))
- 运行结果
总结#
- 由前三组结果可以看出使用函数
string.rep()
和使用操作符..
效果是一样的,但是推荐使用函数string.rep()
,因为查过相关的资料说大量迭代使用操作符..
费时费力。 - 由前三组结果和后三组结果对比可以看出
string.rep()
在遇到\0
时不会认为是字符串结尾,而是把字符串的所有内容都拼接起来。