では、今回からは、KSP特有の機能(コマンドとか)を解説していきます。
array_equal()は、第1引数と第2引数に配列を渡して、2つの配列の値を比較します。全ての値が等しければtrue(真)、等しくないものがあればfalse(偽)を返します。以下のコードを見てください。
on init
declare %Array_1[10]
declare %Array_2[20]
if(array_equal(%Array_1, %Array_2))
message("Array_1 = Array_2")
end if
end on
このプログラムはエラーが出ます。なぜなら、比較対象の配列Array_1とArray_2のサイズが違うからです。比較する場合には、同じサイズである必要があります。では、次のコードを見てください。
on init
declare %Array_1[10] := (0,1,2,3,4,5,6,7,8,9)
declare %Array_2[10] := (0,1,2,3,4,5,6,7,8,9)
end on
on note
if(array_equal(%Array_1, %Array_2))
message("Array_1 = Array_2")
end if
end on
on release
message(" ")
end on
このプログラムでは、ノートオンで、「Array_1 = Array_2」のテキストがステータスラインに表示されます。では、さらに次のコードを見てください。
on init
declare %Array_1[10] := (0,1,2,3,4,5,6,7,8,9)
declare %Array_2[10] := (0,1,2,3,4,5,6,7,8,10)
end on
on note
if(array_equal(%Array_1, %Array_2))
message("Array_1 = Array_2")
else
message("Array_1 # Array_2")
end if
end on
on release
message(" ")
end on
このプログラムでは、ノートオンで、「Array_1 # Array_2」のテキストがステータスラインに表示されます。つまり、1つでも配列の中の値が違えば、falseが返ってくるわけです。