- 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タブレットがブルースクリーンになった時のメモ
- お知らせ
変数
この記事では、AliceScriptにおける変数の概念について説明します。
変数は、AliceScriptにおける主要な概念のひとつです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入できます。 この記事では、多くの変数に共通する事項を説明した後、それぞれの型の特徴について説明します。 変数は、すべて基となるvariable
から派生しています。これは、すべての変数に共通した操作セットを提供します。
AliceScriptの変数は、文字で始まり、任意の数の文字、数字、記号が続きます。また、予約語を使用することはできません。次の例では、a
という変数に123を代入し定義します。その後で、その変数の値をprint関数を使って出力します。
型を明記して代入することもできます。このとき、varキーワードの代わりに型指定修飾子を使用します。次の例では、文字列型の変数を宣言し、文字列を代入しています。
nullを代入することができる変数を作成するにはnull許容宣言として、型指定修飾子の後に?
を付けます。次の例では、null許容の真偽値型の変数を宣言し、nullを代入しています。
定義時の型以外の型の値を後で代入できる、バリアント型の変数を作成するには、型指定修飾子にvariableを使用します。次の例では、そのような変数を宣言し、文字列を代入したあと数値を再代入しています。
通常、変数に代入されるのは常にその値です。つまり、ある変数に式の値を代入するとその値への参照が代入されます。 通常、変数を定義する際は次の形で宣言します。
AliceScriptでは変数の名前を、識別子と呼びます。変数の名前付けルールなどについては、識別子を参照してください。
ローカル変数とスコープ
変数はその有効な範囲内で、一意な名前である必要があります。この範囲をその変数のスコープと呼びます。スコープの範囲内では同じ名前の変数を定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義した変数は使用できず、使用しようとすると0x004例外が発生します。 AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。厳密なことをいうと、現在実行されているScript
オブジェクトとその親スクリプトです。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。
上記の例ではFuncを呼び出すことで、ローカル変数aが定義されていますがそのスコープの範囲外での呼び出しのため、関数外で変数aを使用することはできません。また、インクルードしたファイルに対してもスコープが適用されます。このため、異なるスクリプトファイル間でローカル変数を共有することはできません。
グローバル変数
ローカル変数と反対の性質を持つものとして、グローバル変数があります。これは、スコープ内外のどこでも定義でき、定義されたスコープ外でもその変数を使用できます。グローバル変数はスクリプトではなくインタプリタに直接登録されます。その変数をグローバル変数として宣言定義するにはpublic
キーワードを使用します。
上記の例ではFunc
を呼び出すことで、グローバル変数a
が定義されているため、Func
の呼び出し後には、そのインタプリタで実行されるすべてのコードでグローバル変数a
が使用できます。
定数
定数は、変数とは異なり、一度宣言すると再度代入したり値を変更することができません。これは、プログラム上で変更されたくない値(トークンなど)を定義する際に役立ちます。定数にもスコープが存在し、ローカル定数とグローバル定数があります。定数を定義するにはvar
キーワードの代わりにconst
キーワードを使用します。
型
AliceScriptのすべての変数および定数は、値に評価されるすべての式と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。たとえばnumber型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、bool型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。
AliceScriptに組み込まれている型の一覧を示します。
キーワード | 型の名前 | 説明 |
---|---|---|
bool | 真理値型 | true とfalse の二値を表します |
bytes | バイナリ型 | バイナリデータ配列を表します |
number | 数値型 | 倍精度浮動小数点数型を表します |
string | 文字列型 | テキストの一連のUTF-16コードの配列を表します |
array | 配列型 | 何らかの型の配列を表します |
delegate | デリゲート型 | 匿名関数のような一連のステートメントのまとまりを表します |
object | オブジェクト型 | カスタムクラスや.NETのオブジェクトを表します |
pointer | ポインター型 | 変数を指し示すポインターを表します |
none | none型 | null の変数を表します |
continue | continue型 | continue キーワードを表す型です |
break | break型 | break キーワードを表す型です |