スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

カテゴリ : スポンサー広告

文字列を数値に変換する - 単項+演算子

参照:TJSの演算子について
吉里吉里では文字列と数値は区別されます。
@eval exp="f.a = 5"
@eval exp="f.b = '10'"
@emb exp="f.a + f.b"

このスクリプトを実行すると「510」と表示されます。
これはf.bに'10'が代入されているからです。
(' '(シングルクォート)で囲まれていることに注意。数値の「10」ではなく文字列の「'10'」)
加算+演算子では、どちらか一方でも文字列だった場合、文字列同士をつなぎ合わせます。(参照)
このスクリプトの[emb]タグでは、「5」が「'5'」に変換されて'5' + '10'で結果は'15'となります。


数値として足し算させるために、計算する前にf.bを数値に変換する必要があります。
@eval exp="f.a = 5"
@eval exp="f.b = '10'"
; ↓ f.bを数値に変換する
@eval exp="f.b = +f.b"
@emb exp="f.a + f.b"

これを実行すると10 + 5 の結果である「15」と表示されます。
変数の前に+を付けると変数の中身を数値に変換してくれます。
その変換されたものを、元の変数(ここではf.b)に入れてやればf.bの中身を文字列から数値に換えることができます。
※f.b = +f.bを詳しくみてみる
この式で一番優先順位が高いのは+です。この+は単項+演算子です。足し算の+とは異なります。
(※足し算の+は二項演算子ですがこの+は単項演算子です)
単項+演算子は右側にあるものを評価(実行)し、それを数値に変換します。
(※変数を"評価"すると、その中身になります)
 f.b = +f.b
  ↓ (f.bを評価)
 f.b = +'10'
  ↓ ('10'を数値に変換)
 f.b = 10
次に単純代入演算子(=)が実行され、f.bに数値である10が代入されます。
  ↓
 10

ただし、数値に変換できない文字列だった場合0になるので注意してください。
@eval exp="f.b = 'あいうえお'"
@eval exp="f.b = +f.b"
@emb exp="f.b"

これを実行すると「0」と表示されます。
'あいうえお'を数値に変換することができないからです。
※ついでにこのf.b = +f.bも詳しくみてみる。
 f.b = +f.b
  ↓(f.bを評価)
 f.b = +'こんにちは'
  ↓('こんにちは'を数値に変換しようとする、が変換できない)
 f.b = 0
  ↓(f.bに0が代入される)
 0



単項+演算子使用例
pbgmマクロ(3) - 配列の利用
スポンサーサイト

タグ : 吉里吉里 KAG TJS 講座

カテゴリ : KAG

コメントの投稿

非公開コメント

最新記事
カテゴリ

openclose

記事一覧
Twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。