「関数」の版間の差分
編集の要約なし |
編集の要約なし |
||
88行目: | 88行目: | ||
PrintAllArgs(); | PrintAllArgs(); | ||
//出力:(何も出力されません) | //出力:(何も出力されません) | ||
=拡張メソッド= | |||
拡張メソッドを使用すると、新規に型を作成することなく既存の型にメソッドを追加できます。拡張メソッドに使用する関数はグローバル関数である必要があり、現在の型の変数が代入される引数に<code>this</code>キーワードを使用します。 | |||
==WordCountの例== | |||
function global WordCount(this string str) | |||
{ | |||
return str.Split(“ ”).Length; | |||
} | |||
var text = “Hello Extension Methods”; | |||
print(text.WordCount());//出力例:3 | |||
登録したい引数の型指定修飾子を<code>this</code>キーワードの後に記述します。これを省略すると、<code>variable</code>型に登録されます。複数の<code>this</code>キーワードを使用することはできません。拡張メソッドには<code>virtual</code>属性および<code>override</code>属性を付与することもできます。標準の型メソッドのオーバーライド可否については[[変数]]を参照してください。 | |||
=属性= | =属性= | ||
AliceScriptではさまざまな機能や構造が関数で設計されているため、必要に応じて関数に特別な機能を持たせることが可能です。属性の一覧を以下に示します。 | AliceScriptではさまざまな機能や構造が関数で設計されているため、必要に応じて関数に特別な機能を持たせることが可能です。属性の一覧を以下に示します。 |