「
新機能の一覧
」を編集中
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
{{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は、RC1に続くAliceScriptの次のテストリリースです。AliceScriptRC2によって、AliceScriptに次の機能と機能強化が追加されています。 最新のAliceScriptADKは[[AliceScriptのダウンロード]]でダウンロードできます。 ==parmsパラメータ== AliceScriptRC2では、<code>parms</code>パラメータが導入されています。引数に<code>params</code>キーワードを使用すると、可変長個の引数を受け取る引数を指定できます。<code>params</code>の型は常にARRAYとなります。 一つの関数内では、<code>params</code>キーワードより後に引数を指定することができません。次に例を示します。 function PrintAllArgs(params args) { foreach(arg in args) { print(arg); } } PrintAllArgs("Hello","World"); //出力:["Hello","World"] ==引数の型指定== 引数の型指定では、ユーザ定義関数の引数に型を指定することができるようになりました。引数に<code>string</code>などの型指定修飾子を指定すると、その型のみを引数として受け入れることができるようになり、予期しない型による呼び出しを防ぐことができます。次に例を示します。 function Add(number a,number b) { return a+b; } Add(1,2);//戻り値:3 Add("1","2");//例外発生 ==デリゲートの簡易呼び出し== デリゲートの簡易呼び出しは、デリゲート型が変数に登録されている場合に<code>Invoke</code>メソッドを呼び出さずに<code>変数名(引数);</code>の形で呼び出しできるようにします。次に例を示します。 var SayHello = delegate() { print("Hello,World"); } SayHello();//出力例:Hello,World SayHello.Invoke();//出力例:Hello,World ==ユーザ定義定数== ユーザ定義定数では、<code>const</code>キーワードを使ってその値が一度のみ定義され変更することができない定数を宣言することができます。次に例を示します。 const Message="Hello,World"; print(Message);//出力例:Hello,World Message="Bonjur";//例外発生 ==デバッグ出力== デバッグ出力によって、コードのデバッグのための新しい出力が提供されます。今まで、デバッグのために<code>print</code>を用いて出力していたものを<code>debug_print</code>で 代用することができます。これらの関数は<code>Alice.Interpreter</code>名前空間にあります。例えば、次の例では、デバッグ用の出力と標準出力に別な内容が出力されます。 import "Alice.Interpreter"; print("Hello,Standard"); debug_print("Hello,Debug"); //標準出力:Hello,Standard //デバッグ出力:Hello,Debug ==例外のエラーコード== 例外のエラーコードによって、発生した例外に対して一貫してより高度な情報を得ることができるようになります。完全な日本語でのエラー出力によって発生した例外がプログラマだけでなくユーザにも親しみやすくなります。 例外のエラーコード、メッセージ、発生条件などについて詳しく知るには[[例外]]を参照してください。 ==Type型/型比較演算子== <code>type</code>型によって、変数の型に対する新たなアプローチが提供されます。全ての変数は<code>Type</code>プロパティを実装していて、その変数の型を表す値を取得することができます。<code>string</code>、<code>number</code>、<code>bool</code>キーワードなどはそれぞれの型の値を表す定数です。また、[[式#型一致演算子|型一致演算子<code>is</code>]]を使用することでその型に変数が指定された型かどうかを判断できます。次に例を示します。 var num = 123; print(num.type);//出力例:NUMBER var condition = (num is number); print(condition);//出力例:True ==暗黙的な変換の廃止/型変換演算子== まず、従来のAliceScriptに搭載されていた暗黙的な型変換は廃止されました。String型への変換を除くすべての型を変換するには、型変換演算子またはConvert関数が必要です。[[式#型変換演算子|型変換演算子<code>as</code>]]を使用することでその型に変数を明示的に変換することができます。次に例を示します。 var num = 123; print(num.type);//出力例:NUMBER var str = (num as string); print(str.type);//出力例:STRING ==Activate関数/Convert関数== <code>type.activate</code>関数は、その変数の表す型の変数を新規に作成し返します。<code>variable.convert(type)</code>関数はその変数を指定された型に変換します。次に例を示します。 var num = number.Activate(); print(num.type);//出力例:NUMBER var str = num.Convert(string); print(str.Type);//出力例:STRING ==Null合体演算子== Null合体演算子は、その変数が<code>null</code>でない場合、その変数がそのまま返されます。それ以外の場合は、右側のオペランドが評価され、その結果が返されます。 また、その変数が<code>null</code>である場合にのみ、右側のオペランドの値を左側の変数に割り当てるNull合体割当演算子<code>??=</code>も使用できます。次に例を示します。 var a = null; a ??= 5; print(a);//出力例:5 a ??= 3; print(a);//出力例:5 ==AlicePackage== AlicePackageによって、スクリプトファイルやリソース、ライブラリを一つにまとめて公開することが可能になりました。詳細については[[AlicePackage]]を参照してください。 ==パフォーマンス== WSOFTScriptとのデバッグ互換性維持のために残されていたWSOFTScriptデバッガは、AliceScriptRC2から実装されなくなりました。また、<code>&&</code>と<code>||</code>演算子について演算のショートカットが導入され、左辺の評価状況によって右辺を評価すべきか考慮し、不要である場合は評価されなくなりました。従来のような動作が必要な場合には代わりに<code>&</code>演算子や、<code>|</code>演算子を利用できます。 これらの改善により、一部のシナリオでパフォーマンスを向上させることができます。
編集内容の要約:
AliceScript Wikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
AliceScript Wiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
このページで使用されているテンプレート:
テンプレート:Alert
(
編集
)
テンプレート:Func-getcolor
(
編集
)
テンプレート:Func-getsafe
(
編集
)
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
案内
メインページ
ツアー
ダウンロード
規約
おまかせ表示
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報