ActionScript3.0 の論理演算子について

iyamaです。

今日はまた戻ってActionScript3.0。 論理演算子についてです。

論理演算子とは、if文とかでよく使われる、AND(&&)やOR(||)のこと。 こんな風によく使いますよね。

例)Aが真、または、Bが真のときCを真にする。(※A、B、Cは変数)

1
2
3
if (A == true || B == true) {
    C = true;
}

※上記はPHPとかActionScriptで想像してください。

もちろんActionScriptでも論理演算子は使えるのですが、 最近オープンソースのコードを読んでて以下みたいのが出てきたんです。

1
A ||= B;

!? まず驚いたのは、こんな演算子ActionScriptでも使えんの?

えぇ。使えるらしいです。 私、知らなさ過ぎました。 省略形、好きじゃないんです。

上記をしっかり書くと以下のような感じ。(A、Bは変数)

1
A = A || B;

Aが真の場合、AにはAが返り、それ以外の場合はAにBが返ります。 ※AとBは任意の型。Booleanじゃなくても使えるけど、片方がBooleanだとブール値になります。

使用例としては、nullチェックとか、ステータスチェックとかに使えそうですね。

ActionScriptはPHPとかよりも型チェックが厳しいので(それが普通ともいう)、 「+=」とかもあんまり使ってなかったのですが、もうちょっと演算子に気を使った方がいいですね。

今回の例はOR(||)で説明しましたが、もちろんAND(&&)もあります。

1
2
3
A &&= B;

A = A && B;

Aが偽の場合、AにはAを返し、それ以外の場合はAにBが返ります。 うーん。文字で書くとややこしい。

以上です。 数学の論理演算は嫌いじゃなかったけど、そもそも論理演算のことを忘れてますね。。

参考

ActionScript 3.0 コンポーネントリファレンスガイド | 演算子

Comments