bep*_*000 1 actionscript-3 code-translation
我试图理解一些Action Script 3功能,以便移植一些代码.
"++"如何影响索引部分意味着什么?如果idx_val=0那么什么xvaluer指数将被修改?
xvaluer(++idx_val) = "zero";
Run Code Online (Sandbox Code Playgroud)
然后我有这个:这部分代码的含义是什么?在最后3行中分配给bUnicode的是什么?(你能解释一下"<< 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;
Run Code Online (Sandbox Code Playgroud)
我对这里发生的事情一无所知.什么是"as"?是什么 "?" ?
bL = c > BASELENGTH ? (INVALID) : (s_bReverseLPad[c]);
Run Code Online (Sandbox Code Playgroud)
什么是 "&&" ?
if ((i + 1) < aData.length && s_bReverseUPad(aData((i + 1))) != INVALID)
Run Code Online (Sandbox Code Playgroud)
什么是"as"?是什么 "?" ?
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)
Run Code Online (Sandbox Code Playgroud)
最后,"||"之间有什么区别 和"|",以及"="和"=="之间?
代码1: ++i几乎与之相同i++或i += 1;唯一真正的区别在于它在评估之前已被修改.在这里阅读更多.
代码2: <<并且>>是按位移位,它们实际上将位移位一位.Binary在你可以搞砸这些操作员之前,你真的需要了解.我建议一直阅读本教程.
代码3:这个被调用Ternary Operator,实际上非常简单.这是一个单行if / else声明.bL = c > BASELENGTH ? (INVALID) : (s_bReverseLPad[c]);相当于:
if(c > BASELENGTH) {
bL = INVALID;
} else {
bL = s_bReverseLPad[c];
}
Run Code Online (Sandbox Code Playgroud)
代码4: "条件AND运算符(&&)执行其bool操作数的逻辑AND,但只在必要时才计算其第二个操作数." 还要记住条件OR运算符(||).作为AND运算符的示例,这里有一些代码:
if(car.fuel && car.wheels) car.move();
Run Code Online (Sandbox Code Playgroud)
代码5: 从AS3引用: as "计算第一个操作数指定的表达式是否是第二个操作数指定的数据类型的成员." 所以基本上你将一种类型转换为另一种类型,但只有在可能的情况下你才会得到null.
&是Bitwise AND operator和|现在Bitwise OR operator,再次参考这篇文章.
=并且==是两个不同的运营商.前者(=)被调用Basic Assignment这意味着,当你做任何喜欢的分配使用它:i = 3;.==调用later()Equal to,它用于检查值是否等于其他值.if(i == 3) // DO STUFF;.挺直的.
对我来说没有意义的唯一部分是单个问号.Ternary Operator需要兼得?和:.这段代码真的适合你吗?也许更多的背景会有所帮助.什么类型c?
n2 = c < 0 ? (c + 256) as (c)