「
変数
」を編集中
2021年12月13日 (月) 02:11時点における
Master
(
トーク
|
投稿記録
)
による版
(
→
delegate型
)
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
ナビゲーションに移動
検索に移動
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することができます。 この記事では、多くの変数に共通する事項を説明した後、それぞれの型の特徴について説明します。 変数は、すべて基となる<code>variable</code>から派生しています。これは、すべての変数に共通した操作セットを提供します。 AliceScriptの変数は、文字またはアンダースコアから始まり、任意の数の文字、数字、記号が続きます。[[キーワード|予約語]]を使用することはできません。次の例では、<code>a</code>という変数に<code>123</code>を代入し定義します。その後で、その変数の値を[[Print]]関数を使って出力します。 var a = 123; print(a); 通常、変数に代入されるのは常にその値です。つまり、ある変数に式の値を代入するとその値がコピーされ代入されます。 通常、変数を定義する際は次の形で宣言します。 var (修飾子) 名前 = 値; =ローカル変数とスコープ= 変数はその有効な範囲内で、一意な名前である必要があります。この範囲をその変数のスコープと呼びます。スコープの範囲内では、同じ名前の変数を定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義した変数は使用できません。 AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。 function Func() { var a = 123; } Func(); print(a);//例外発生 上記の例ではFuncを呼び出すことで、ローカル変数<code>a</code>が定義されていますがそのスコープの範囲外での呼び出しのため、関数外で変数<code>a</code>を使用することはできません。また、インクルードしたファイルに対してもスコープが適用されます。このため、異なるスクリプトファイル間でローカル変数を共有することはできません。 =グローバル変数= ローカル変数と反対の性質を持つものとして、グローバル変数があります。これは、スコープ内外のどこでも定義でき、定義されたスコープ外でもその変数を使用できます。グローバル変数はスクリプトではなくインタプリタに直接登録されます。その変数をグローバル変数として宣言定義するには<code>global</code>キーワードを使用します。 function Func() { var global a = 123; } Func(); print(a);//出力:123 上記の例ではFuncを呼び出すことで、グローバル変数<code>a</code>が定義されているため、Funcの呼び出し後には、そのインタプリタで実行されるすべてのコードでグローバル変数<code>a</code>が使用できます。 =定数= 定数は、変数とは異なり、一度宣言すると再度代入したり値を変更することができません。これは、プログラム上で変更されたくない値(トークンなど)を定義する際に役立ちます。定数にもスコープが存在し、ローカル定数とグローバル定数があります。定数を定義するには<code>var</code>キーワードの代わりに<code>const</code>キーワードを使用します。 const KEY = “ABCD”; print(KEY);//出力例:ABCD KEY = “EFGH”;//例外発生 =型= AliceScriptのすべての変数および定数は、値に評価されるすべての[[式]]と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えば<code>number</code>型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、<code>bool</code>型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。 var v = type.Activate(); 型には次の種類があります。 ==variable型== <code>variable</code>型は、すべての変数の値を表します。<code>variable</code>型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。<code>variable</code>型のメソッドは次の通りです。 *[[variable型のメソッド#Dispose|variable.Dispose]] *[[variable型のメソッド#Equals|variable.Equals]] *[[variable型のメソッド#Clone|variable.Clone]] *[[variable型のメソッド#DeepClone|variable.DeepClone]] *[[variable型のメソッド#ToString|variable.ToString]] *[[variable型のメソッド#Properties|variable.Properties]] *[[variable型のメソッド#Type|variable.Type]] *[[variable型のメソッド#Convert|variable.Convert]] ==number型== 数値型は実数を表します。数値型は算術、比較、等値演算子をサポートしています。 AliceScriptの数値型の表現できるおおよその範囲は、±5.0 × 10−324 - ±1.7 × 10308(-15~17桁)で、サイズは8バイトです。 数値型の規定値はゼロ<code>0</code>です。また、数値型で非数、正方向の無限、負方向の無限を表す定数がそれぞれ、<code>NaN</code>、<code>PositiveInfinity</code>、<code>NegativeInfinity</code>として定義されています。 数値型への暗黙的な変換は存在しません。型変換演算子を使用するか<code>Convert</code>メソッドを使って、文字列型、<code>bool</code>型、<code>bytes</code>型からの明示的な変換がサポートされています。また、数値型専用のメソッドは存在しません。この型の型指定修飾子は<code>number</code>です。 ==bool型== <code>bool</code>型は、ブール値の論理数を表します。<code>bool</code>型は論理、比較、等値演算子をサポートしています。 <code>bool</code>型の有効な値は<code>true</code>か<code>false</code>のいずれかです。 それぞれの値を表す定数がそれぞれ、<code>true</code>、<code>false</code>として定義されています。 <code>bool</code>型への暗黙的な変換は存在しません。特に、WSOFTScriptとは違い数値型の代わりに値を使用することはできません。また、文字列型、数値型、<code>bytes</code>型からの明示的変換がサポートされます。<code>bool</code>型専用のメソッドは存在しません。この型の型指定修飾子は<code>bool</code>です。 ==bytes型== <code>bytes</code>型は、バイナリデータ配列を表します。<code>bytes</code>型は比較、等値演算子をサポートしています。 <code>bytes</code>型の規定値は<code>null</code>です。この型は<code>null</code>をとり得ます。この型の型指定修飾子は<code>bytes</code>です。 <code>bytes</code>型への暗黙的な変換は存在しません。また、文字列型、数値型、<code>bool</code>型からの明示的変換がサポートされます。<code>bytes</code>型専用のメソッドは存在しません。 ==none型== <code>none</code>型の有効な値は唯一<code>null</code>です。この型は<code>null</code>をとります。また、<code>null</code>型は比較演算子のみをサポートします。 <code>null</code>の値を表す定数が<code>null</code>として定義されています。 <code>null</code>型への暗黙的な変換および明示的な変換はサポートされていません。 ==string型== 文字列型は、テキストを一連のUTF-16コード単位として表現します。文字列型は結合、比較、等値演算子をサポートしています。 文字列型の規定値は空の文字列<code>””</code>です。また、この型の型指定修飾子は<code>string</code>です。 すべてのAliceScriptに組み込まれている型はすべて文字列型への暗黙的な変換をサポートしています。文字列型に限って、明示的な変換と明示的な変換は同じ動作になります。文字列型のメソッドは次のものがあります。 *[[string型のメソッド#Trim|string.Trim]] *[[string型のメソッド#TrimStart|string.TrimStart]] *[[string型のメソッド#TrimEnd|string.TrimEnd]] *[[string型のメソッド#StratsWith|stirng.StartsWith]] *[[string型のメソッド#EndsWith|string.EndsWith]] *[[string型のメソッド#PadLeft|string.PadLeft]] *[[string型のメソッド#PadRight|string.PadRight]] *[[string型のメソッド#Normalize|string.Normalize]] *[[string型のメソッド#CompareTo|string.CompareTo]] *[[string型のメソッド#IsNormalized|string.IsNormalized]] *[[string型のメソッド#IndexOf|string.IndexOf]] *[[string型のメソッド#LastIndexOf|string.LastIndexOf]] *[[string型のメソッド#Contains|string.Contains]] *[[string型のメソッド#Replace|string.Replace]] *[[string型のメソッド#Split|string.Split]] *[[string型のメソッド#ToLower|string.ToLower]] *[[string型のメソッド#ToUpper|string.ToUpper]] *[[string型のメソッド#EmptyOrWhiteSpaces|string.EmptyOrWhiteSpaces]] *[[string型のメソッド#Format|string.Format]] *[[string型のメソッド#Length|string.Length]] *[[string型のメソッド#Count|string.Count]] ==array型== 配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。 配列型の規定値は空の配列<code>[]</code>です。この型は<code>null</code>をとり得ます。この型の型指定修飾子は<code>array</code>です。 配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。 明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。 *[[配列型のメソッド#Add|array.Add]] *[[配列型のメソッド#AddRange|array.AddRange]] *[[配列型のメソッド#Remove|array.Remove]] *[[配列型のメソッド#RemoveAt|array.RemoveAt]] *[[配列型のメソッド#Insert|array.Insert]] *[[配列型のメソッド#RemoveRange|array.RemoveRange]] *[[配列型のメソッド#IndexOf|array.IndexOf]] *[[配列型のメソッド#Contains|array.Contains]] *[[配列型のメソッド#Sort|array.Sort]] *[[配列型のメソッド#Reverse|array.Reverse]] *[[配列型のメソッド#First|array.First]] *[[配列型のメソッド#Last|array.Last]] *[[配列型のメソッド#Flatten|array.Flatten]] *[[配列型のメソッド#Marge|array.Merge]] *[[配列型のメソッド#Foreach|array.Foreach]] *[[配列型のメソッド#Length|array.Length]] *[[配列型のメソッド#Count|array.Count]] ==delegate型== デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。 デリゲート型の規定値は空のステートメント<code>{}</code>です。この型は<code>null</code>をとり得ます。デリゲート型への暗黙的な変換と明示的な変換の両方はサポートされていません。この型の型指定修飾子は<code>delegate</code>です。 デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。 デリゲートについての詳しい説明は[[デリゲート]]の記事を参照してください。デリゲート型のメソッドには次のものがあります。 *[[デリゲート#Invoke|delegate.Invoke]] *[[デリゲート#BeginInvoke|delegate.BeginInvoke]] *[[デリゲート#Length/Count|delegate.Length]] *[[デリゲート#Length/Count|delegate.Count]] ==type型== <code>type</code>型は、変数の型を表します。<code>type</code>型は比較、等値演算子をサポートしています。<code>type</code>型の規定値は、<code>type.None</code>です。<code>type</code>型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子は<code>type</code>です。<code>type</code>型のメソッドには次のものがあります。 *[[Type型のメソッド#Activate|type.Activate]] [[Category:基本]]
編集内容の要約:
AliceScript Wikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
AliceScript Wiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
このページで使用されているテンプレート:
テンプレート:Alert
(
編集
)
テンプレート:Func-getcolor
(
編集
)
テンプレート:Func-getsafe
(
編集
)
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
案内
メインページ
ツアー
ダウンロード
規約
おまかせ表示
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報