プレイ日記
SquidSky ugomemo_gorohati
意外と知られていないかもしれません。GOTOなどでよく使うラベル表記ですが、変数にも代入できるようです。しかし、別にポインタ型でもなく、普通の文字列変数に入れられます。検証してみた結果、レンダリングエンジンが@LABELを文字列とみなして"@LABEL"に解釈しているようです。
10そうだね
プレイ済み
返信[1]
親投稿
うん、いつだかのバージョンアップでそうなったんだって。
3そうだね
プレイ済み
返信[2]
親投稿
SquidSky ugomemo_gorohati
ということは、GOTOやGOSUBなどは"1:@LABEL"という文字列での指定も可能と書いていますが、結局はダブルクオーテーションで囲まれてない@LABELも文字列で渡されるんですね。
1そうだね
プレイ済み
返信[3]
親投稿
たぶんそうだろうね
0そうだね
プレイ済み
返信[4]
親投稿
ちなみに変更は3.1.0らしい Ver.3.1.0において追加・変更 (2015.3.4) 「ラベルを式中で使用すると文字列として扱われる」
3そうだね
プレイ済み
返信[5]
親投稿
はる HARUHI-0913
自分もそれを利用してDATA文にそのままラベル名を書いて、 この処理に行くとかをDATA文でやったりしたことがあります。
2そうだね
プレイ済み
返信[6]
親投稿
はる HARUHI-0913
GOTOでは、 ダブルクオーテーションで囲まれてないラベル名は文字列で渡されて無いっぽいです。 GOTO @LA+"BEL" END @LABEL ?"ラベルのテスト" としたら Syntax errorになりました。 間違っていたらすみません。
2そうだね
プレイ済み
返信[7]
親投稿
なるほどぉ
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
はるさんへ GOTOの場合は文字列化の仕方が特殊で GOTO @LA+"BEL" は GOTO "@LA+"BEL"" として処理されているためSyntax errorとなっているのではないかと思います。
3そうだね
プレイ済み
返信[9]
親投稿
はる HARUHI-0913
おちゃめさん≫わざわざ解説ありがとうございます。
2そうだね
プレイ済み
返信[10]
親投稿
Godot orz_127
それは知っていて、はるさんが言っているようにDATA文にも使えるので、これが仕様なら、色が変わって見易いので、そうしようかなと思っていたところw 仕様でないなら後のバージョンアップで動かなくなる可能性も。 上のあまさとさん情報によると、式では文字列扱いという仕様が判明。 DATA文でも""なしに文字列と解釈される、は仕様で良いのか?? どなたか情報持っています?
2そうだね
プレイ済み
返信[11]
親投稿
わざわざ更新情報に書いてあるくらいだんだから仕様でいいんじゃない?
2そうだね
プレイ済み
返信[12]
親投稿
・@foo は "@foo" と等価に扱われる。 従来は命令引数としてラベルを与えたい場合、文字列として与える必要があったが、ラベルを直接記述できるようになる。 旧 COPY A,"@FOO" 新 COPY A,@FOO ※「一般的な式中のラベルリテラルは文字列定数として解釈するようになった」のであり、「ラベル型という値が増えた」のではない事に注意 ・式中ではラベルは文字列として扱われる事になるので、このような記述も可能。 A$=@FOO*3 '@FOO@FOO@FOO 書いてあった文章持ってくるとこんな感じ
2そうだね
プレイ済み
返信[13]
親投稿
Godot orz_127
あまさとさん 情報どうもです。 先程やっとそのページに辿りつけました。 DATA文のデータ部分には式が書けなかった気がするので「一般的な式中」に該当するかは、不明ですが、「ラベルリテラルは文字定数として解釈するようになった」を信じるなら問題無さ気。 で、データを読み取ってGOSUBするコマンドをライブラリ化して別スロットに置いたらスコープの問題で残念な事に orz それは置いておいて、スマブに仕様確認しようとしていた問題がひと片付いたのでよかった^^
2そうだね
プレイ済み