「変数」の版間の差分

提供: AliceScript Wiki
ナビゲーションに移動 検索に移動
Zen (トーク | 投稿記録)
ページの作成:「変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することが…」
 
Zen (トーク | 投稿記録)
編集の要約なし
4行目: 4行目:
=variable型=
=variable型=
<code>variable</code>型は、すべての変数の値を表します。<code>variable</code>型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。<code>variable</code>型のメソッドは次の通りです。
<code>variable</code>型は、すべての変数の値を表します。<code>variable</code>型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。<code>variable</code>型のメソッドは次の通りです。
*[[variable型のメソッド#Dispose|Dispose]]
*[[variable型のメソッド#Dispose|variable.Dispose]]
*[[variable型のメソッド#Equals|Equals]]
*[[variable型のメソッド#Equals|variable.Equals]]
*[[variable型のメソッド#Clone|Clone]]
*[[variable型のメソッド#Clone|variable.Clone]]
*[[variable型のメソッド#DeepClone|DeepClone]]
*[[variable型のメソッド#DeepClone|variable.DeepClone]]
*[[variable型のメソッド#ToString|ToString]]
*[[variable型のメソッド#ToString|variable.ToString]]
*[[variable型のメソッド#Length|Length]]
*[[variable型のメソッド#Length|variable.Length]]
*[[variable型のメソッド#Size|Size]]
*[[variable型のメソッド#Size|variable.Size]]
*[[variable型のメソッド#Properties|Properties]]
*[[variable型のメソッド#Properties|variable.Properties]]
*[[variable型のメソッド#Type|Type]]
*[[variable型のメソッド#Type|variable.Type]]
*[[variable型のメソッド#Convert|Convert]]
*[[variable型のメソッド#Convert|variable.Convert]]
AliceScriptのすべての変数および定数は、値に評価されるすべての[[式]]と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えば<code>number</code>型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、<code>bool</code>型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。
AliceScriptのすべての変数および定数は、値に評価されるすべての[[式]]と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えば<code>number</code>型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、<code>bool</code>型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。


74行目: 74行目:
配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。
配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。
明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。
明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。
*[[配列型のメソッド#Add|Add]]
*[[配列型のメソッド#Add|array.Add]]
*[[配列型のメソッド#AddRange|AddRange]]
*[[配列型のメソッド#AddRange|array.AddRange]]
*[[配列型のメソッド#Remove|Remove]]
*[[配列型のメソッド#Remove|array.Remove]]
*[[配列型のメソッド#RemoveAt|RemoveAt]]
*[[配列型のメソッド#RemoveAt|array.RemoveAt]]
*[[配列型のメソッド#RemoveRange|RemoveRange]]
*[[配列型のメソッド#RemoveRange|array.RemoveRange]]
*[[配列型のメソッド#IndexOf|IndexOf]]
*[[配列型のメソッド#IndexOf|array.IndexOf]]
*[[配列型のメソッド#Contains|Contains]]
*[[配列型のメソッド#Contains|array.Contains]]
*[[配列型のメソッド#Sort|Sort]]
*[[配列型のメソッド#Sort|array.Sort]]
*[[配列型のメソッド#Reverse|Reverse]]
*[[配列型のメソッド#Reverse|array.Reverse]]
*[[配列型のメソッド#First|First]]
*[[配列型のメソッド#First|array.First]]
*[[配列型のメソッド#Last|Last]]
*[[配列型のメソッド#Last|array.Last]]
*[[配列型のメソッド#Flatten|Flatten]]
*[[配列型のメソッド#Flatten|array.Flatten]]
*[[配列型のメソッド#Marge|Marge]]
*[[配列型のメソッド#Marge|array.Marge]]
*[[配列型のメソッド#FindIndex|FindIndex]]
*[[配列型のメソッド#FindIndex|array.FindIndex]]
*[[配列型のメソッド#Foreach|Foreach]]
*[[配列型のメソッド#Foreach|array.Foreach]]
=delegate型=
=delegate型=
デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。
デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。
95行目: 95行目:
デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。
デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。
デリゲートについての詳しい説明は[[デリゲート]]の記事を参照してください。デリゲート型のメソッドには次のものがあります。
デリゲートについての詳しい説明は[[デリゲート]]の記事を参照してください。デリゲート型のメソッドには次のものがあります。
*[[デリゲート型のメソッド#Invoke|Invoke]]
*[[デリゲート型のメソッド#Invoke|delegate.Invoke]]
*[[デリゲート型のメソッド#BeginInvoke|BeginInvoke]]
*[[デリゲート型のメソッド#BeginInvoke|delegate.BeginInvoke]]
=type型=
=type型=
<code>type</code>型は、変数の型を表します。<code>type</code>型は比較、等値演算子をサポートしています。<code>type</code>型の規定値は、<code>type.None</code>です。<code>type</code>型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子は<code>type</code>です。<code>type</code>型のメソッドには次のものがあります。
<code>type</code>型は、変数の型を表します。<code>type</code>型は比較、等値演算子をサポートしています。<code>type</code>型の規定値は、<code>type.None</code>です。<code>type</code>型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子は<code>type</code>です。<code>type</code>型のメソッドには次のものがあります。
*[[Type型のメソッド#Activate|Activate]]
*[[Type型のメソッド#Activate|type.Activate]]
[[Category:基本]]
[[Category:基本]]

2021年12月8日 (水) 08:19時点における版

変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することができます。 この記事、多くの変数に共通する事項を説明した後、それぞれの型の特徴について説明します。 変数は、すべて基となるvariableから派生しています。これは、すべての変数に共通した操作セットを提供します。

variable型

variable型は、すべての変数の値を表します。variable型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。variable型のメソッドは次の通りです。

AliceScriptのすべての変数および定数は、値に評価されるすべてのと同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えばnumber型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、bool型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。

var v = type.Activate();

型には次の種類があります。

number型

数値型は実数を表します。数値型は算術、比較、等値演算子をサポートしています。

AliceScriptの数値型の表現できるおおよその範囲は、±5.0 × 10−324 - ±1.7 × 10308(-15~17桁)で、サイズは8バイトです。

数値型の規定値はゼロ0です。また、数値型で非数、正方向の無限、負方向の無限を表す定数がそれぞれ、NaNPositiveInfinityNegativeInfinityとして定義されています。

数値型への暗黙的な変換は存在しません。型変換演算子を使用するかConvertメソッドを使って、文字列型、bool型、bytes型からの明示的な変換がサポートされています。また、数値型専用のメソッドは存在しません。この型の型指定修飾子はnumberです。

bool型

bool型は、ブール値の論理数を表します。bool型は論理、比較、等値演算子をサポートしています。

bool型の有効な値はtruefalseのいずれかです。 それぞれの値を表す定数がそれぞれ、truefalseとして定義されています。

bool型への暗黙的な変換は存在しません。特に、WSOFTScriptとは違い数値型の代わりに値を使用することはできません。また、文字列型、数値型、bytes型からの明示的変換がサポートされます。bool型専用のメソッドは存在しません。この型の型指定修飾子はboolです。

bytes型

bytes型は、バイナリデータ配列を表します。bytes型は比較、等値演算子をサポートしています。

bytes型の規定値はnullです。この型はnullをとり得ます。この型の型指定修飾子はbytesです。

bytes型への暗黙的な変換は存在しません。また、文字列型、数値型、bool型からの明示的変換がサポートされます。bytes型専用のメソッドは存在しません。

none型

none型の有効な値は唯一nullです。この型はnullをとります。また、null型は比較演算子のみをサポートします。 nullの値を表す定数がnullとして定義されています。 null型への暗黙的な変換および明示的な変換はサポートされていません。

string型

文字列型は、テキストを一連のUTF-16コード単位として表現します。文字列型は結合、比較、等値演算子をサポートしています。 文字列型の規定値は空の文字列””です。また、この型の型指定修飾子はstringです。

すべてのAliceScriptに組み込まれている型はすべて文字列型への暗黙的な変換をサポートしています。文字列型に限って、明示的な変換と明示的な変換は同じ動作になります。文字列型のメソッドは次のものがあります。

array型

配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。 配列型の規定値は空の配列[]です。この型はnullをとり得ます。この型の型指定修飾子はarrayです。

配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。 明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。

delegate型

デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。 デリゲート型の規定値は空のステートメント{}です。この型はnullをとり得ます。デリゲート型への暗黙的な変換と明示的な変換の両方はサポートされていません。この型の型指定修飾子はdelegateです。

デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。 デリゲートについての詳しい説明はデリゲートの記事を参照してください。デリゲート型のメソッドには次のものがあります。

type型

type型は、変数の型を表します。type型は比較、等値演算子をサポートしています。type型の規定値は、type.Noneです。type型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子はtypeです。type型のメソッドには次のものがあります。