您的位置:首页 > 其它

杂谈,生活随笔

2014-01-07 17:54 232 查看
这几天一直在忙于抢火车票回家的事,感觉好久没有看看代码,写写程序,读读博文,长长知识啦,玩了一上午的12306,骂了一上午的破网站后,下午终归决定好好学习一会。哇咔咔,在电脑上发呆了半天,不知道该干嘛,做什么呢,大脑短路。。。翻看博客,想起那些需要完成的伟大的框架学习任务,于是乎,选择了Swiz这个东东。

网上资料不是很多,但也要花费不少时间呢。看别人说都不怎么用的东西啦,还看干嘛?是呀,我是不是在浪费时间,以后工作也不一定用的到啊,要不要看,丝丝犹豫后,简单翻看了几段源码。。行,不错,结构挺好,还有日志记录呢,一直感慨java语言中有开源的日志记录包,AS里面没有,那我就趁机会好好读一读,是不是就是我自己的东西啦。

搜噶,尼玛,看着看着发现,掉到底层的日志记录事件,AS3里面也有?查找帮助文档,还真的在。是自己孤陋寡闻不知道罢了,哎,大悲剧呀。基础知识薄弱...恶补吧。

---------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------

Swiz框架里面为什么要重新定义一套自己的日志记录呢?为什么不适用AS3中原生的日志呢?我想应该是害怕在升级的过程中更改,造成Swiz框架的不可用,亦或者是觉得原生的使用起来不是很友好,所以自己重新定义了一套。

还发现了一个好玩的写法:

var loggers:Dictionary;
loggers ||= new Dictionary();


新颖啊,虽然意思能理解,但第一见到啊,好神奇的写法。API文档中如下介绍:
---------------------------------------------------------------------------------------------------------

expression1 || expression2
的值赋予
expression1
。例如,下面两个语句是等效的:

x ||= y;
x = x || y;


操作数
expression1:*
— 任何类型的值。
expression2:*
— 任何类型的值。
结果
*
— 如果这两个操作数都是 Boolean 数据类型,则为布尔值。否则,结果将为任一表达式的值。
以下示例将一个默认值赋予先前声明的名为
myVar
的变量。此方法基于以下事实:如果
expression1
的计算结果为
true
,则逻辑 OR (
||
) 运算符返回
expression1
的值;否则,返回
expression2
的值。如果
myVar
中已经包含了计算结果为
true
的值,
myVar

将不变。然而,如果
myVar
包含
null
""
(空字符串)和
undefined
等计算结果为
false
的值,则将值
"default"
赋予
myVar


myVar ||= "default";


---------------------------------------------------------------------------------------------------------
懂了,这样还省去了是否为空的判断呢。好处就是代码简洁,缺点就是不易懂,至少对于第一次见到的人要反思一下,没有if/else判断是否为空清晰明了。

加油,2014。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: