问题描述
我刚刚编写了这段令人难以置信的冗长代码,将 2 之类的数字转换为 02.您能否将此函数缩短一些(维护功能)?
I just wrote this incredibly verbose code to turn numbers like 2 into 02. Can you make this function shorter, please (maintaning the functionality)?
public static function format(n:int, minimumLength:int):String {
var retVal:String = n.toString();
var stillNeed:int = minimumLength - retVal.length;
for (var i:int = 0; i < stillNeed; i++) {
retVal = "0" + retVal;
}
return retVal;
}
请为变量使用类型.如果已经有一个我不知道的内置函数,则额外加分(良好氛围点,而不是 SO 点).
Please use types for variables. Extra points (good-vibe points, not SO points) if there's already a built-in function that I don't know about.
如果有人想用其他语言发布一些非常简短的等价物,那也会很有趣.
If anybody wants to post some extremely short equivalent in some other language, that would be fun too.
推荐答案
这不是最快的实现(它做了一些不必要的复制并有一个循环),但它很好且可读:
This wouldn't be the fastest implementation (it does some unnecessary copying and has a loop), but it is nice and readable:
public static function pad(num:int, minLength:uint):String {
var str:String = num.toString();
while (str.length < minLength) str = "0" + str;
return str;
}
这篇关于类似 Ruby 的问题:使这个函数更短(ActionScript 3)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!