引数から配列を得る関数
投稿者: cfm_ 投稿日:2016/05/11 17:06
配列を、引数でわけて設定する関数 (スクリプト/配列を一気に設定する関数とは違い、引数それぞれが1つの要素になります)
例)a=array2(1,20,5) → a[0]=1, a[1]=20, a[2]=5
null!="null"かつtoString(null)=="null"を利用してnullを判別し、引数が1~16個のいくつでも正常に動くようにした関数です。
関数名が思いつかないので、使う際は何かわかりやすい名前に変えちゃってください。
引数の数は16個までですが、足りなかったら付け足せます。
もっと良い書き方があれば言ってください。
テスト
参考
「"null"と数値を比較するとエラーが発生したり、ある数でtrueになる」ということはありません。
"null"と数値を比較したところ、イコールでも不等号でもfalseが返されました。
また、同じくtrueとfalseとの比較もエラーは発生しません。
toString(3/0)=="Infinity", toString(0%0)=="NaN" なので、nullと計算結果が一致することはないと思われます。 (infinity=無限)
ツイート
例)a=array2(1,20,5) → a[0]=1, a[1]=20, a[2]=5
null!="null"かつtoString(null)=="null"を利用してnullを判別し、引数が1~16個のいくつでも正常に動くようにした関数です。
関数名が思いつかないので、使う際は何かわかりやすい名前に変えちゃってください。
引数の数は16個までですが、足りなかったら付け足せます。
もっと良い書き方があれば言ってください。
def array2(a00,a01,a02,a03,a04,a05,a06,a07,a08,a09,a10,a11,a12,a13,a14,a15) a=createArray() if toString(a00)=="null"&&a00!="null" then return a;else pushArray(a,a00);end if toString(a01)=="null"&&a01!="null" then return a;else pushArray(a,a01);end if toString(a02)=="null"&&a02!="null" then return a;else pushArray(a,a02);end if toString(a03)=="null"&&a03!="null" then return a;else pushArray(a,a03);end if toString(a04)=="null"&&a04!="null" then return a;else pushArray(a,a04);end if toString(a05)=="null"&&a05!="null" then return a;else pushArray(a,a05);end if toString(a06)=="null"&&a06!="null" then return a;else pushArray(a,a06);end if toString(a07)=="null"&&a07!="null" then return a;else pushArray(a,a07);end if toString(a08)=="null"&&a08!="null" then return a;else pushArray(a,a08);end if toString(a09)=="null"&&a09!="null" then return a;else pushArray(a,a09);end if toString(a10)=="null"&&a10!="null" then return a;else pushArray(a,a10);end if toString(a11)=="null"&&a11!="null" then return a;else pushArray(a,a11);end if toString(a12)=="null"&&a12!="null" then return a;else pushArray(a,a12);end if toString(a13)=="null"&&a13!="null" then return a;else pushArray(a,a13);end if toString(a14)=="null"&&a14!="null" then return a;else pushArray(a,a14);end if toString(a15)=="null"&&a15!="null" then return a;else pushArray(a,a15);end return a end
テスト
a2=array2("aa", "bb", "cc") a3=array2(1.5, 2.5, 3.5, 4.5, 5.5, 6.5) #実行結果 speak(a2[0]) #aa speak(a2[2]) #cc speak(a3[0]) #1.5 speak(a3[2]) #3.5 speak(a3[5]) #6.5
参考
「"null"と数値を比較するとエラーが発生したり、ある数でtrueになる」ということはありません。
"null"と数値を比較したところ、イコールでも不等号でもfalseが返されました。
また、同じくtrueとfalseとの比較もエラーは発生しません。
toString(3/0)=="Infinity", toString(0%0)=="NaN" なので、nullと計算結果が一致することはないと思われます。 (infinity=無限)
コメントする
コメントするには、ログインする必要があります。
数字とかfalseとか文字とか色々あるときはどうするのかなー
toNumberとか使うのかなーと思ってましたけど
これだと混在してても大丈夫そうですね。