「新機能の一覧」の版間の差分
編集の要約なし |
|||
(同じ利用者による、間の18版が非表示) | |||
1行目: | 1行目: | ||
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/changelog/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}} | |||
AliceScriptは、セキュリティと信頼性に関するバグを修正することを目的にして、従来のバージョンのAliceScriptにも更新が提供されることもありますが、それは絶対ではありません。すでにお使いの従来のバージョンのAliceScriptを用いて開発されたアプリケーションを移行する必要はありませんが、新規に開発するアプリケーションについては最新バージョンのAliceScriptを使用することを推奨します。 | |||
この記事では、AliceScriptの各バージョンにおける新機能と機能強化について説明します。この記事は、それぞれの新機能の情報を詳しく説明するものではありません。AliceScriptの各機能についてはそれぞれの記事をご覧ください。ダウンロードとインストール手順について詳しくは[[AliceScriptのダウンロード]]を参照してください。 | |||
=AliceScript Golden Masterの新機能= | |||
AliceScriptGMは、AliceScriptの初の安定リリースです。AliceScriptGMによって、AliceScriptに次の機能と機能強化が追加されています。 | |||
最新のAliceScriptADKは[[AliceScriptのダウンロード]]でダウンロードできます。 | |||
==一部の暗黙的な変換の廃止== | |||
AliceScriptGMでは、プログラムミスを減らし、適切に例外を発生させる目的で<code>bool</code>型と<code>number</code>型、<code>string</code>型から<code>number</code>型への暗黙的な変換は廃止されました。 | |||
==未定義の変数への代入の禁止== | |||
AliceScriptGMからは、<code>var</code>キーワードを使用することでのみ、未定義の変数を定義できます。定義されていない変数にアクセスすることはできない上、同じスコープ内で複数回同じ名前の変数を<code>var</code>キーワードを使って宣言することはできません。このサイトにある一部の記事はまだ古いままで、変数の定義に<code>var</code>キーワードを使用していなかったり、型指定修飾子を使用している場合がありますが、これは最新のバージョンのAliceScriptでは正しく動作しません。 | |||
==関数・変数・定数のスコープ== | |||
関数や変数、定数のスコープはAliceScriptGMにおける重要な変更の一つです。 | |||
AliceScriptGM以降のバージョンでは、関数や変数、定数はその有効な範囲内で、一意な名前である必要があります。この範囲をスコープと呼びます。スコープの範囲内では、同じ名前のオペランドを定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義したオペランドは使用できません。 AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。 | |||
function OutputTen() | |||
{ | |||
var a = 10; | |||
print(a); | |||
} | |||
print(a);//例外発生 | |||
==整数リテラルの2進表記および16進表記のサポート== | |||
AliceScriptGMからは、整数を2進数および16進数で記述できるようになります。整数を2進数で表現する場合は<code>0b</code>プレフィックスを、16進数で表現する場合は<code>0x</code>プレフィックスを使用します。次の例では、すべて10進数で256と等価な数を記述しています。 | |||
var decimalNum = 256; | |||
var hexNum = 0x100; | |||
var binaryNum = 0b100000000; | |||
print(decimalNum==hexNum==binaryNum);//出力:True | |||
==逐語的文字列リテラル== | |||
シングルクォーテーション<code>’</code>で囲われた文字列は、逐語的文字列リテラルとして認識します。 | |||
逐語的文字列リテラルは、<code>\’</code>などの限定的なものを除き、ほとんどの文字がそのままの意味で解釈されます。 | |||
次の例ではどちらも”Hello,World“を表す文字列リテラルです。 | |||
‘“Hello,World”’; | |||
“\”Hello,World”\” | |||
=AliceScriptRC2の新機能= | =AliceScriptRC2の新機能= | ||
AliceScriptRC2は、RC1に続くAliceScriptの次のテストリリースです。AliceScriptRC2によって、AliceScriptに次の機能と機能強化が追加されています。 | AliceScriptRC2は、RC1に続くAliceScriptの次のテストリリースです。AliceScriptRC2によって、AliceScriptに次の機能と機能強化が追加されています。 | ||
最新のAliceScriptADKは[[AliceScriptのダウンロード]]でダウンロードできます。 | 最新のAliceScriptADKは[[AliceScriptのダウンロード]]でダウンロードできます。 | ||
==parmsパラメータ== | ==parmsパラメータ== | ||
AliceScriptRC2では、<code>parms</code>パラメータが導入されています。引数に<code>params</code>キーワードを使用すると、可変長個の引数を受け取る引数を指定できます。<code>params</code>の型は常にARRAYとなります。 | AliceScriptRC2では、<code>parms</code>パラメータが導入されています。引数に<code>params</code>キーワードを使用すると、可変長個の引数を受け取る引数を指定できます。<code>params</code>の型は常にARRAYとなります。 | ||
26行目: | 60行目: | ||
==デリゲートの簡易呼び出し== | ==デリゲートの簡易呼び出し== | ||
デリゲートの簡易呼び出しは、デリゲート型が変数に登録されている場合に<code>Invoke</code>メソッドを呼び出さずに<code>変数名(引数);</code>の形で呼び出しできるようにします。次に例を示します。 | デリゲートの簡易呼び出しは、デリゲート型が変数に登録されている場合に<code>Invoke</code>メソッドを呼び出さずに<code>変数名(引数);</code>の形で呼び出しできるようにします。次に例を示します。 | ||
var SayHello = | var SayHello = delegate() | ||
{ | { | ||
print( | print("Hello,World"); | ||
} | } | ||
SayHello();//出力例:Hello,World | SayHello();//出力例:Hello,World | ||
SayHello.Invoke();//出力例:Hello,World | SayHello.Invoke();//出力例:Hello,World | ||
==ユーザ定義定数== | ==ユーザ定義定数== | ||
ユーザ定義定数では、<code>const</code>キーワードを使ってその値が一度のみ定義され変更することができない定数を宣言することができます。次に例を示します。 | ユーザ定義定数では、<code>const</code>キーワードを使ってその値が一度のみ定義され変更することができない定数を宣言することができます。次に例を示します。 |