以下代码以AS3为例,当然,其他语言也基本适用。我们看一个简单的问题,如何获取当前是星期几?
A程序员说,太简单了,我来写一段:
代码如下 | 复制代码 |
var date:Date = new Date; if (date.day == 0) { trace("星期天"); } else if (date.day==1) { trace("星期一"); } else if (date.day==2) { trace("星期二"); } else if (date.day==3) { trace("星期三"); } else if (date.day==4) { trace("星期四"); } else if (date.day==5) { trace("星期五"); } else if (date.day == 6) { trace("星期六"); } |
我们运行下,不错,结果正确,A程序员是好样的。但这个时候,B程序员不服气了,说你这里面大量的if else语句实在是??拢?乙?慕?幌隆S谑牵?辛讼旅嬉欢危?/p>
代码如下 | 复制代码 |
var date:Date = new Date; switch (date.day) { case 0 : trace("星期天"); break; case 1 : trace("星期一"); break; case 2 : trace("星期二"); break; case 3 : trace("星期三"); break; case 4 : trace("星期四"); break; case 5 : trace("星期五"); break; case 6 : trace("星期六"); break; } |
B程序员使用了switch语句,相比之前的if else,switch确实结构上清晰了许多,一目了然,是个不错的办法。我们可以说,B的方法优雅于A。
这时,C程序员不服气了,认为B的方法还是看起来挺??碌模??M??朐缴僭胶茫?谑牵?给出了自己的解决方法:
代码如下 | 复制代码 |
var date:Date = new Date; var weekArr:Array=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]; trace(weekArr[date.day]) |
C程序员巧妙的利用了数组的特点,把星期作为一个固定变量,然后就可以直接得到结果了,C的代码和上面比起来,确实是最少的,也很简洁,但这是不是一个最好的办法呢?也许有人认为这么写结构不是很清晰,当然,这是仁者见仁智者见智的问题了。
我们已经用了3个不同的办法来实现输出星期了,按道理说已经解决问题了,但是人永远喜欢折腾,这时候,D程序员来了,他给出了自己的代码:
代码如下 | 复制代码 |
var date:Date = new Date; var str:String ="天一二三四五六"; trace("星期"+str.charAt(date.day)); |
第四个方法,巧妙的利用的字符串string的一个方法:charAt,确实是个好方法。
好了,我们真的可以结束了,我知道还有其他的方法可以实现,但是,请记住一点,代码不是越简洁越好,简洁有时候可读性不强,要根据实际情况取舍,但是,折腾,才会进步!
时间: 2024-11-05 12:07:36