我尝试了解一些Action Script 3功能,以便移植一些代码。
" ++"影响指数部分意味着什么?如果idx_val=0
那么将修改xvaluer索引?
xvaluer(++idx_val) = "zero";
然后我有了这个代码的含义是什么? 在最后3行中分配给bUnicode的是什么? (你能解释一下"<<" s">>" s)
bUnicode = new Array(2);
i = (i + 1);
i = (i + 1);
bUnicode[0] = aData[(i + 1)] << 2 | aData[(i + 1)] >> 4;
i = (i + 1);
bUnicode[1] = aData[i] << 4 | aData[(i + 1)] >> 2;
我对这里发生的事情一无所知。 什么是&#34; as&#34; ?什么是&#34;?&#34; ?
bL = c > BASELENGTH ? (INVALID) : (s_bReverseLPad[c]);
什么是&#34;&amp;&amp;&#34; ?
if ((i + 1) < aData.length && s_bReverseUPad(aData((i + 1))) != INVALID)
什么是&#34; as&#34; ?什么是&#34;?&#34; ?
n2 = c < 0 ? (c + 256) as (c)
bOut.push(n1 >> 2 & 63)
bOut.push((n1 << 4 | n2 >> 4) & 63)//What is the single "&" ?
bOut.push(n2 << 2 & 63)
最后,&#34; ||&#34;之间有什么区别?和&#34; |&#34;,以及&#34; =&#34;和&#34; ==&#34; ?
答案 0 :(得分:6)
代码1: ++i
与i++
或i += 1;
几乎完全相同。唯一真正的区别是它在评估之前已被修改。 Read more here.
代码2: <<
和>>
是按位移位,它们实际上将位移位一位。在你弄乱这些运算符之前,你真的需要理解Binary
。我建议一直阅读this tutorial。
代码3:这个名为Ternary Operator
,实际上非常简单。这是一行if / else
声明。 bL = c > BASELENGTH ? (INVALID) : (s_bReverseLPad[c]);
相当于:
if(c > BASELENGTH) {
bL = INVALID;
} else {
bL = s_bReverseLPad[c];
}
代码4: “条件AND运算符(&&
)执行其bool操作数的逻辑AND,但仅在必要时才计算其第二个操作数。”< / em>还要记住条件OR运算符(||
)。
作为AND运算符的示例,这里有一些代码:
if(car.fuel && car.wheels) car.move();
代码5: From AS3 Reference: as
“计算第一个操作数指定的表达式是否是第二个操作数指定的数据类型的成员。” 所以基本上你将一种类型转换为另一种类型,但只有在可能的情况下你才会得到null
。
&
为Bitwise AND operator
而|
为Bitwise OR operator
,再次提及this article.
=
和==
是两个不同的运算符。前者(=
)称为Basic Assignment
,意味着当您执行任何类型的分配时使用它:i = 3;
。后面的(==
)称为Equal to
,它用于检查值是否等于其他值。 if(i == 3) // DO STUFF;
。很直接。
唯一对我没有意义的是单个问号。 Ternary Operator
需要同时拥有?
和:
。这段代码真的适合你吗?也许更多的背景会有所帮助。什么类型是c
?
n2 = c < 0 ? (c + 256) as (c)