我使用这样的代码从字符串数组构建一个字符串:
class ActionCMD { // "class" to avoid value copies when updating string members
var cmds = [String]() // simply the list of all strings to speed up inserting
var cmd : String { return cmds.reduce("", +) } // resulting string
}
但是对于35.000个字符串,它需要15分钟。有没有更好的(快速)方法来进行连接?
答案 0 :(得分:2)
您应该避免创建中间字符串。而是使用以下任一方法来更改先前累积的字符串:
# Get the absolute path of this current test script
base_path, _ = os.path.split(os.path.abspath(__file__))
# Form the absolute path of the needed json
json_path = os.path.join(base_path, "../assertions/validator/validation_config.json")
with open(json_path) as inp:
validation_config = json.load(inp)
或:
cmds.reduce(into: "", { $0 += $1 })
或简单地:
cmds.joined()
有关字符串串联here
的更多信息