GameMaker 日本語掲示板

「!!」二重否定演算子(Bang Bang Operator)

3 コメント
views
16 フォロー

数値に否定演算子を2個つけると0以下なら0を、0より大きければ1に変換するようなことができるっぽい

var num1 = 100;
var num2 = -100;
var num3 = 0;

show_debug_message(string(!!num1));//1
show_debug_message(string(!!num2));//0
show_debug_message(string(!!num3));//0

これは否定演算子が一度bool型に変換するという性質を使っていると思われます。
gamemakerでは数値的にfalseは0,trueは1なのでこうなる感じですね。

生高橋
作成: 2021/05/29 (土) 12:12:43
通報 ...
1

なーるほど

2
hayate212 2021/05/30 (日) 18:06:53

GMLはJavascriptに言語仕様が似ているので、この資料が役に立つかもです
https://developer.mozilla.org/ja/docs/Glossary/Truthy
https://developer.mozilla.org/ja/docs/Glossary/Falsy

3
生高橋 2021/05/31 (月) 20:44:19 >> 2

調べた時にJavaScriptでの英語解説がヒットしましたね。考え方をそのまま流用しました。