10/9(土)のオフィスアワーっす

ぺんぎん

2010年10月13日 19:08


次の講座まで10日もあるっすねぇ。
4回目のお題についての質問が無いところを見ると、
調べたりするのは順調に進んでるみたいっすね。
どうもぺんぎんっす( ◎v◎ )


オフィスアワーはデジアカの受講者じゃなくてもOKっす。
質問が多数出た場合に優先するってだけっす。
別に講座の質問じゃなくて、他のスクリプトの話でも良いっす。
誰でもウェルカムっすよ。

講座3回目の原稿など
10/6(水)のオフィスアワー


ただのブロック
 ifでもなくforでもなくwhileでもないのに{ }で囲った文っす。
 なので「ただのブロック」と呼んでるだけっす。
 default
 {
   state_entry()
   {
     integer a = 2;
     { // ※
       integer a = 3;
       llOwnerSay("inner block: " + (string)a);
     } // ※
     llOwnerSay((string)a);
   }
 }
 例えばこんなやつっす。
 LSLEditorではダメなんっすけど、in-worldでは通るっす。
 ちなみに※の行に書いてある{ }を消すとコンパイルエラーが出るっす。
 [state_entryのa]と[state_entryの、さらに内側のa]
 2つあると考えれば良さそうっす。
 [state_entryの、さらに内側のa]の有効範囲は、内側のブロックが
 終わるまでの部分になるっす。
 こういった「ただのブロック」は書いたことが無いので、
 どんなときに使うと有効なのかは分かんないっす。
 何か意図があったんだろうと思うんっすけど、
 自分には分からなかったっす。

宿題の答え
 無いっす。
 考え方が無数にあって、どれが正しいなんてのは言えないっす。
 考え方によって方法も違ってくるっすからね。
 自分の方で想定しているスクリプトは一応あるっす。
 でも、それを出しちゃうと、それが「正解」みたいに取られるっす。
 それは避けたいわけっす。
 考え方の1つとしてーなら出しても良いのかもしれないっすけど、
 うーん……難しいっすねぇ。

正しく動いてる? / 値がアヤシイ?
 何かおかしいと思ったら、その値を出してみれば良いっす。
 llOwnerSayとかを使えば確認できるっすよね。


オフィスアワーは水曜日と、講座の無い土曜日っす。
今日もやるっすよ。

デジアカ