Ето един код, който ни дава да правим :
1 2 |
var string:String = "Hello %1 %2"; trace( format(string, "hangover!", " How you doin'?")); //prints "Hello hangover! How you doin'?" |
Имплементира се тривиално, но докато не го имах не се сещах, че ми трябва 🙂
1 2 3 4 5 6 7 8 9 10 11 |
function format(...args):String { var string:String = args[0]; var argsCount:int = args.length; for (var i:int = 1; i < argsCount; i++){ string = replaceString(string, "%" + i, args[i]); } return string; } function replaceString(string:String, stringToReplace:String, stringToAdd:String):String{ return string.split(stringToReplace).join(stringToAdd); } |
Якото обаче е, че горния пример е по-бърз от :
1 2 3 4 5 6 7 8 |
function format(...args):String { var string:String = args[0]; var argsCount:int = args.length; for (var i:int = 1; i < argsCount; i++){ string = string.replace(new RegExp("%" + i), args[i]); } return string; } |
На моята машина с около 20%.
Мда регулярните изрази са бавни