- WSOFT Docs
- ブログ
- 共同作成ガイド
-
製品
- 製品
- PCMX
- WSOFTアカウント
- AliceScript
- AliceScript
- 謝辞
- ダウンロード
- Alice(キャラクター)
- AliceScriptのツアー
- Wikiの概要
- APIブラウザー
- APIブラウザー
- Alice
- break
- continue
- delay
- do
- exit
- for
- foreach
- function
- if
- import
- include
- lock
- read
- return
- string_format
- switch
- using
- while
- write
- Diagnostics
- Environment
- env_clr_version
- env_commandLine
- env_commandLineArgs
- env_set_exitCode
- env_expand_environmentVariables
- env_get_environmentVariable
- env_hasShutdownStarted
- env_impl_architecture
- env_impl_location
- env_impl_name
- env_impl_target
- env_impl_version
- env_Is64BitOperatingSystem
- env_Is64BitProcess
- env_MachineName
- env_NewLine
- env_os_platform
- env_os_version
- env_set_environmentVariable
- Exception
- Interpreter
- gc_collect
- gc_collectAfterExecute
- gc_getTotalMemory
- interpreter_append_output
- interpreter_append_output
- interpreter_consts
- interpreter_namespaces
- interpreter_getVariable
- interpreter_globalVariables
- interpreter_name
- interpreter_nameexists
- interpreter_namespaces
- interpreter_process
- interpreter_processfile
- interpreter_reset_variables
- Type
- Math
- math_abs
- math_acos
- math_acosh
- math_atan
- math_atan2
- math_atanh
- math_bitdecrement
- math_bitincrement
- math_cbrt
- math_celling
- math_clamp
- math_copysign
- math_cos
- math_cosh
- math_e
- math_exp
- math_factorial
- math_floor
- math_fusedmultiplyadd
- math_isFinite
- math_isInfinity
- math_isNaN
- math_isNegativeInfinity
- math_isNormal
- math_isPositiveInfinity
- math_isprime
- math_isSubNormal
- math_max
- math_min
- math_pi
- math_pow
- math_round
- math_sin
- math_sinh
- math_sqrt
- math_tan
- math_tanh
- math_tau
- math_truncate
- Net
- Parsing
- Random
- Security
- Threading
- Array
- Bool
- Bytes
- Delegate
- None
- Number
- String
- string
- CompareTo
- Contains
- EndsWith
- Equals
- Format
- GetBytes
- Indent
- IndexOf
- Insert
- IsEmptyOrNull
- IsEmptyOrWhiteSpace
- IsNormalized
- Join
- LastIndexOf
- Normalize
- PadCenter
- PadLeft
- PadRight
- Remove
- RemoveAt
- Repeat
- Replace
- ReplaceLineEndings
- Split
- SplitLines
- StartsWith
- SubString
- ToLower
- ToLowerInvariant
- ToUpper
- ToUpperInvariant
- Trim
- Trim
- TrimStart
- Variable
- 変更履歴
- 例外
- 例外
- 0x000 NONE
- 0x001 COULDNT_FIND_FUNCTION
- 0x003 INVALID_OPERAND
- 0x004 COULDNT_FIND_VARIABLE
- 0x005 ITS_RESERVED_NAME
- 0x006 ILLEGAL_IDENTIFIER
- 0x009 INCOMPLETE_ARGUMENTS
- 0x01a COULDNT_ADD_PARAMETERS_AFTER_PARMS_KEYWORD
- 0x020 COULDNT_EXECUTE_BLOCK
- 0x021 NEED_BRACKETS
- 0x022 UNNEED_TO_BRACKETS
- 0x04a CASE_BLOCK_MISSING_BREAK
- 0x04b UNKNOWN_ESCAPE_CHAR
- 基本
- Alice in Discord
- 相互運用
- チュートリアル
- ダウンロードセンター
- ほめて.ws
- アイコンメーカー
- WSOFTScript
- Unidet
- WebSailing
- WSNET
- WSTodon
- WSTube
- Lantana
- 法的資料
-
あみうは
- あみうは
- 新学期が始まりました!
- 恋の相談
- プチコン3号で作ったのは?
- オススメの文庫
- マクドナルド最高!
- ios11β レビュー
- あみうはの歌について
- ついに自分のソフトウェアのホームページができました。
- Windowsタブレットをリセットして起動しなくなった人のために
- PCレスで YouTubeの曲を携帯mp3プレイヤーで聴く(iPhone)
- 食べられないラズベリーパイを買いました。(1)
- ラズベリーパイの下ごしらえ(2)
- 小説始めます~
- 女子がキュンとくる行動ベスト3!!
- MacとWindowsについてあまり知られていない事
- macでできる裏技
- ドコモの格安スマホ「MONO」買っちゃいました☆いい所をいくつか
- 『レビュー』iPhone6sを1年間使い続けて思ったこと
- iPhoneの拡大鏡に関するバクを発見しました。
- iPhoneで圧縮ファイルを作成したり解凍する方法
- Obscura2が今だけ無料!使い方まとめ
- Windowsタブレットがブルースクリーンになった時のメモ
- お知らせ
array
配列型は、インデックスを使用してアクセスできる変数のリストを表します
定義
名前空間:Alice / アセンブリ : Losetta.dll / サポート: AliceScript1
配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。 配列型の規定値は空の配列[]
です。この型はnullをとり得ます。この型の型指定修飾子はarray
です。
説明
配列は、0個以上の変数を格納することができるオブジェクトとみなすことができます。CやC++のようなアドレス指定可能な連続メモリ領域ではありません。 また、配列には別の配列を含むこともできます。このような配列は多次元配列やジャグ配列と呼ばれます。
var ary = [1,1,2,3,5];
// 配列内の要素の個数=配列の長さを取得する
print($"配列には、現在{ary.Length}個の要素が含まれています");// ary.Length == 5
// 配列に要素を追加する
ary.Add(8);
print($"配列には、現在{ary.Length}個の要素が含まれています");// ary.Length == 6
// 配列内に1が含まれているか確認する
if(ary.Contains(1))
{
print("配列には、1が含まれています");
}
// 配列内の2を削除する
ary.Remove(2);
// 配列内のすべての要素を削除する
ary.Clear();
ary.Add(3,1,2,4);
// 配列内の要素についてひとつずつ取得する
foreach(var item in ary)
{
print(item);
}
// これも同様
ary.Foreach(item => print(item));
// 配列を昇順に並べ替え
ary.Sort();
// 配列の順序を反転
ary.Reverse();
// 配列の先頭の要素を取得
print(ary.First); // 出力:4
// 配列の最後の要素を取得
print(ary.Lest); // 出力:1
現在配列に存在する要素の個数を取得するには、Lengthプロパティを使用します。
配列に要素を追加するには、Addメソッドを使用します。また、別の配列の要素を現在の配列に追加するためにAddRangeメソッドを使用することもできます。 配列に要素を追加した後、配列の長さが増えていることにご注目ください。
配列に特定の要素が含まれているかを調べるには、Containsメソッドを使用します。
配列内から特定の要素を削除するには、Removeメソッドを使用します。また、Clearメソッドを使用することで、配列内のすべての要素を削除できます。
配列内の要素をひとつずつ取得して処理するには、Foreach文を使用するか、Foreachメソッドを使用します。
配列を昇順に並べ替えるには、Sortメソッドを使用します。また、配列の並び順を反転するには、Reverseメソッドを使用します。
Firstプロパティを使用して、配列の並び順で先頭の要素を取得します。 同様に、Lastプロパティを使用することで、並び順の最後の要素を取得します。
using Alice.Math;
var ary2 = [1,2,3,4,5,6];
// 配列から素数だけを取得
var primes = ary2.Where(x => math_isPrime(x));
// 配列の要素の2の倍数の配列を作成
var evens = ary2.Select(x => x * 2);
if(ary2.All(x => x > 0))
{
print("配列内の要素はすべて正の数でした");
}
Whereメソッドを使用することで、配列から特定の条件に一致する要素のみを含めた新しい配列を取得できます。また、Selectメソッドを使用することで、配列のそれぞれの要素に対して何らかの操作をし、その結果を含めた新しい配列を作成できます。
配列内の要素がすべて条件を満たすかどうかを判定するには、Allメソッドを使用します。
コレクション式
すでに前の例で示しましたが、コレクション式([]
)を使用すると、ソースコード上で直接配列を定義できます。
対応バージョン>=Alice3.0
また、コレクション式中で、スプレッド演算子...
を使用することで別の配列の中身を展開できます。次の例を参照してください。
var baseArray = [1,2,3];
var combined = [0, ...baseArray , 4];
print(combined);//出力: 0,1,2,3,4
型の一意性
配列型は、その初期化時に配列に含むことのできる変数の型を指定できます。型を指定するには、次のように配列を宣言します。
デフォルトでは、配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。 その問題から、バイト配列を表すbytes型は別に定義されています。明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。
プロパティ
名前 | 説明 |
---|---|
Length | その変数の持つデータ長を表します |
First | 現在の配列の最初の要素を表します |
Last | 現在の配列の最後の要素を表します |
メソッド
名前 | 説明 |
---|---|
Add(params variable item) | 現在の配列の末尾に値を追加します |
All(delegate condition) | 現在の配列に含まれるすべての要素が条件を満たしているかどうか判定します |
Any(delegate condition) | 現在の配列に含まれるいずれかの要素が条件を満たしているかどうか判定します |
AddRange(params array items) | 現在の配列の末尾にその配列に含まれるすべての要素を追加します |
Clear() | 現在の配列からすべての要素を削除します |
Contains(variable item) | 現在の配列内に指定された値が存在するかを示す値を取得します |
Distinct() | 現在の配列内に指定された値が存在するかを示す値を取得します |
Except(array other) | 現在の配列と指定された配列の差集合を取得します |
Flatten() | 現在の配列内にある配列型の要素を、現在の配列が存在する場所に置き換え、配列を平坦化します |
Foreach(delegate task) | 現在の配列からひとつずつ要素を取り出し、与えられたデリゲートを実行します |
IndexOf(variable item,number startIndex=0) | 指定された値が現在の配列内で最初に見つかった位置のインデックスを返します |
Insert(number index,variable item) | 現在の配列内の指定したインデックスにその値を挿入します |
InsertRange(number index,array items) | 現在の配列内の指定したインデックス配列に含まれるすべての要素を追加します |
Intersect(array other) | 現在の配列と指定された配列の積集合を取得します |
Merge(params variable item) | 現在の配列の末尾に値を追加した新しい配列を返します |
Merge(params array ary) | 現在の配列の末尾に配列を結合した新しい配列を返します |
OfType(type target) | 現在の配列から指定された型の要素のみを取り出します |
OrderBy() | 現在の配列の要素を昇順で並べ替えます |
OrderByDescending() | 現在の配列の要素を降順で並べ替えます |
Remove(params variable item) | 現在の配列から指定された値を削除します |
RemoveAt(number index) | 現在の配列の指定したインデックスにある値を削除します |
RemoveRange(array items) | 現在の配列から指定された配列に含まれるすべての値を削除します |
Reverse() | 現在の配列の要素の順序を反転させます |
Reverse(number index,number count) | 現在の配列内の指定した範囲の要素の順序を反転させます |
Select(delegate selector) | 現在の配列の各要素を新しい配列に射影します |
SequenceEqual(array other) | 現在の配列ともう一方の配列の要素が等しいかどうかを判定します |
Size() | その変数の持つデータ長を取得します |
Skip(number count) | 現在の配列内の先頭から指定された数の要素を取り除いた配列を取得します |
SkipWhile(delegate condition) | 現在の配列内の先頭から指定された条件を満たす間要素を除いた配列を取得します |
Sort() | 現在の配列を規定の方法で並び替えます |
Take(number count) | 現在の配列内の先頭から指定された個数の要素を取得します |
TakeWhile(delegate condition) | 現在の配列内の先頭から指定された条件を満たす間の要素を取得します |
Union(array other) | 現在の配列と指定された配列の和集合を取得します |
Where(delegate condition) | 現在の配列から指定された条件に一致する要素のみを取り出します |