「変数」の版間の差分
ページの作成:「変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することが…」 |
編集の要約なし |
||
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
型のメソッドは次の通りです。
- variable.Dispose
- variable.Equals
- variable.Clone
- variable.DeepClone
- variable.ToString
- variable.Length
- variable.Size
- variable.Properties
- variable.Type
- variable.Convert
AliceScriptのすべての変数および定数は、値に評価されるすべての式と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えばnumber
型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、bool
型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。
var v = type.Activate();
型には次の種類があります。
number型
数値型は実数を表します。数値型は算術、比較、等値演算子をサポートしています。
AliceScriptの数値型の表現できるおおよその範囲は、±5.0 × 10−324 - ±1.7 × 10308(-15~17桁)で、サイズは8バイトです。
数値型の規定値はゼロ0
です。また、数値型で非数、正方向の無限、負方向の無限を表す定数がそれぞれ、NaN
、PositiveInfinity
、NegativeInfinity
として定義されています。
数値型への暗黙的な変換は存在しません。型変換演算子を使用するかConvert
メソッドを使って、文字列型、bool
型、bytes
型からの明示的な変換がサポートされています。また、数値型専用のメソッドは存在しません。この型の型指定修飾子はnumber
です。
bool型
bool
型は、ブール値の論理数を表します。bool
型は論理、比較、等値演算子をサポートしています。
bool
型の有効な値はtrue
かfalse
のいずれかです。
それぞれの値を表す定数がそれぞれ、true
、false
として定義されています。
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に組み込まれている型はすべて文字列型への暗黙的な変換をサポートしています。文字列型に限って、明示的な変換と明示的な変換は同じ動作になります。文字列型のメソッドは次のものがあります。
- string.Trim
- string.TrimStart
- string.TrimEnd
- stirng.StartsWith
- string.EndsWith
- string.PadLeft
- string.PadRight
- string.Normalize
- string.CompareTo
- string.IsNormalized
- string.IndexOf
- string.Replace
- string.Split
- string.ToLower
- string.ToUpper
- string.EmptyOrWhiteSpaces
- string.Format
array型
配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。
配列型の規定値は空の配列[]
です。この型はnull
をとり得ます。この型の型指定修飾子はarray
です。
配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。 明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。
- array.Add
- array.AddRange
- array.Remove
- array.RemoveAt
- array.RemoveRange
- array.IndexOf
- array.Contains
- array.Sort
- array.Reverse
- array.First
- array.Last
- array.Flatten
- array.Marge
- array.FindIndex
- array.Foreach
delegate型
デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。
デリゲート型の規定値は空のステートメント{}
です。この型はnull
をとり得ます。デリゲート型への暗黙的な変換と明示的な変換の両方はサポートされていません。この型の型指定修飾子はdelegate
です。
デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。 デリゲートについての詳しい説明はデリゲートの記事を参照してください。デリゲート型のメソッドには次のものがあります。
type型
type
型は、変数の型を表します。type
型は比較、等値演算子をサポートしています。type
型の規定値は、type.None
です。type
型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子はtype
です。type
型のメソッドには次のものがあります。