変数のきほん。




変数とは

データを入れておく箱の事。
例えばユーザー名をユーザー別に変えたい場合、変えたユーザ名を記憶しておく場所が必要になります。
それ以外にも性別とか年齢とか高感度とか変化する値を保存しておく場所、それが変数です。

変数を使う

変数に値を入れる

次の三通りの方法があります。

$好感度【タブ】100
$好感度=100
(set,好感度,100)

詳しく→変数への代入には…

  • 変数を使う前に変数宣言は必要ありません。また文字型や整数型などの型もありません。
  • 変数名は変数使用時に()を使うため、同じく()を使って使用する特殊変数名・情報取得変数名はもちろん関数名・イベント名等のシステム予約名とは重複出来ません。

変数を使う(呼び出す)

変数名を()で囲んで記述しておくと実際に表示される時には変数に入っている値が表示されます。

:(ユーザ名)さん、おはようございます。

初回起動時に変数に値を入れておく

変数に値を入れてから()で表示する方法だと初回起動時点で予め値を入れておく方法が必要になります。
satori_conf.txtで変数の初期値を設定する事が出来ます。

ゴースト終了時の変数の値の保存

ゴースト終了時に変数の値は自動的にsatori_savedata.txtに保存され、次回起動時に自動的に読み込まれます。(一時的な変数も明示的に削除しない無い限り保存されます。)

変数を削除する

$変数名【タブ】

変数が削除され、satori_savedata.txtにも保存されなくなります。
【タブ】の右には何も書かないようにしてください。
※変数を削除してもsatori_conf.txtにエントリがある場合は、次回起動時にsatori_conf.txtから値を読み込みします。

変数への代入には…

以下の3つの方法があります。

基本

$変数名【タブ】値

右辺を特にいじらず、そのまま変数に代入します。 計算式であっても文字列として扱われます。

$変数テスト【タブ】1+1
:(変数テスト)っ♪
↓
:1+1っ♪

計算してから代入

$変数名=値

右辺の値を「計算式」として扱い、計算結果を代入します。
里々で使える演算記号は演算子一覧を参照のこと。

$変数テスト=1+1
:(変数テスト)っ♪
↓  
:2っ♪ 

set関数を使った代入

(set,変数名,値)

里々の内部関数のset関数を使用した代入方法です。
値を「計算式」として扱い、計算結果を代入します。

:(set,変数テスト,1+1)(変数テスト)っ♪
↓
:2っ♪

先の二つの方法は変数代入で1行を使用しなければなりませんが、set関数は文中に使用出来る為、次の様な記述が可能になります。

(when,(条件変数)==1,(set、変数テスト、100),(set、変数テスト、200))

変数を削除

削除時も同様に3つの書き方が出来ます。

$変数名【タブ】
$変数名=
(set,変数名,)

【タブ】の右側、「=」の右側には何もないので注意してください。

計算式について

一つの式の中で加算、減算より乗算、除算、剰余が優先的に計算されるので

$変数=3+6×2

だと結果は「18」ではなく「15」になります。注意。 「3+6」を先に計算したい場合はこう書きます。

$変数=(3+6)×2

カッコは必ず半角で。

$変数=(calc,3+6)×2

半角括弧が気持ち悪い場合は、calcを使うのもありです。

変数が数字かどうか確認する

is_digitで数字か否かの判断が出来ます。数字なら1、そうでないなら0が返ります。 例えば、こんな。

*
:ユーザさんの歳って、いくつ?
\![open,inputbox,ユーザ年齢]

*ユーザ年齢を教えてもらった
>おかしい【タブ】(is_digit,(ユーザ年齢))==0
:(ユーザ年齢)歳ね。(6)ふ〜〜〜ん。
:なんだよ。

*おかしい
:(7)数字を入れろっ!
:落ち着けっ!

てな具合。 他にも年齢とか誕生日とかは、あり得ない数字とかと合わせてチェックした方がいいと思います。

変数の存在を確認する

(変数「ユーザ名」の存在)

とすれば、$ユーザ名という変数が存在すれば1,そうでなければ0が返ります。 変数の中に何が入っているか解らないときは便利。

*
>名前を聞いている【タブ】(変数「ユーザ名」の存在)==1
:そういえばさ、まだユーザさんの名前聞いてないんだけど。
:メニューの「名前を教える」から教えてや。

*名前を聞いている
:(5)よっ、(ユーザ名)。
:(ユーザ名)に名前を教えてもらったのがそんなに嬉しいか?
:(8)うるさいなぁ。

てな具合に。

ただし、satori_conf.txtの中で予め何かが設定されている場合は、その変数が存在することになります。 里々の場合、デフォルトで

$ユーザ名【タブ】ユーザ

と書いてある場合がほとんどなので、その場合はこのトークが発生すると、 「ユーザ」という名前をすでに教えてもらっている状態となるので注意。

中身のないからっぽ変数の扱い

呼び出した時の挙動

中身のない、何も設定していない変数を呼び出すと、消えるのではなくそのまま表示されます。

:(ほげほげ)わー。

#「(ほげほげ)わー。」と表示される
#「わー。」にはならない

当然、SAORIや条件式に使う場合も同じです。
数字しか受け付けない関数の場合、エラーや誤動作が発生します。

計算時の挙動

からっぽ変数の扱いの中で、下記の例だけは例外となります。

$新規変数=(新規変数)+1

この場合エラーが起こりません。
変数に計算してから代入は、からっぽの変数が自動的に「0」と判断されるのです。

ただ、タブでの直接入力とsetでの入力ではできません。
できる限りsatori_conf.txtにて初期値の設定をした方が安全です。

配列変数

記事:配列変数


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-03-20 (月) 00:15:45 (249d)