我一直在处理一个脚本,要求您输入一个总是等于或少于32个字符的用户名。我的目标是在字符串末尾添加额外的字符,如果它少于32个字符。例如,如果我使用单词" Taco"这是四个字符,我需要添加28个填充字符才能实现我的目标。
这是我到目前为止的代码:
set localUN to "Taco"
set UNLength to length of localUN
set blanksToAdd to (32 - UNLength)
set authID to localUN
repeat blanksToAdd times
set authID to authID & "█"
end repeat
虽然这确实有效,但运行起来有点慢,所以我希望找到更好的解决方案。
感谢。
答案 0 :(得分:1)
对我来说似乎足够快;你确定那是你的瓶颈所在吗?
如果它在一个性能敏感的循环中运行> 10,000次,你可以使用premade slug在每次迭代中挤出几μs,例如:
property padding : "████████████████████████████████"
set s to "Taco"
if length of s < 32 then set s to text 1 thru 32 of (s & padding)
return s
但对于非性能关键任务(如用户输入),您的原始代码非常好,我不会费心去更改它。 “过早的优化是所有邪恶的根源”,以及所有这些。