型の違いからおこるタイプ・ミスマッチについて触れました。
これらはいかにもプログラム的な、決まり事の世界で、
初心者には難しい感じのする部分ですが、
実は意外によくあるのがもっと単純な入力ミス、
スペルミスによる間違いです。
リンデン・スクリプトはC言語の仕様によく似ているのですが、
C言語同様、アルファベットの大文字と小文字を区別します。
つまり、大文字と小文字を間違えただけでもう動きません。
llSay() は誰でもよく知っている有名な関数ですが、これを
llsay()
と書いただけで、もう別物とみなしてしまい、恐らくは、
「Name not defined within scope」
(決められた範囲内でこの名前は定義されていません)
と言われてしまうことでしょう。
逆に言うと、ちゃんと定義しているはずなのにこれが出てくるのは
スペルミスの可能性が高いということになります。
前にも書きましたが、スクリプトのエディタはよくできていて、
ステートとリンデンで用意されている関数は赤い文字、
イベントは水色の文字、
型を表すキーワードと文字列は緑色の文字
リンデンで用意されている定数は紫色の文字
コメントはオレンジの文字
に色が変わります。
llsay と書いて色が赤くならなかったら、スペルミスということです。
llsay を llSay に変えた途端に赤くなるでしょう?
この色を頼りに入力ミスによるエラーを減らせます。
ただ、自分で定義した変数や関数は色が黑のままです。
なので、この場合は、定義したところから
コピー&ペーストして使うことをお勧めします。
以前、Lifebound Records にある最新ブログ情報ボードを作った時に、
どうも期待通りに動かないのでよくよく調べてみると、
親スクリプトで「getRss」というメッセージを送っていて、
子スクリプトでは「getrss」を待っていた、ということがありました。
いつまで待っても小文字の「getrss」が送られてこないので、
スクリプトも実行されないのでした。
コピーしていれば防げたミスでした。
この関連で触れておきたいのが、
変数名を変更しなければならなくなった場合です。
複雑なスクリプトを書いているうちに
どうしても似たような変数が必要になってきた、
そこで、最初に定義した変数の名前も変更することにした、
というような場合ですね。
この時、普通に定義からコピー&ペーストしたのでは
今度はペースト漏れが生じて、
またまたそこでエラーが発生する可能性が出てきます。
こんな時は「置換」の機能を使います。

スクリプト・エディターの「Edit」メニューを開くと
一番下に「検索/置換」というのがあります。
これを選んで開く画面の
「検索」の入力ボックスに変更前の変数名をコピー&ペースト、
「置換」の入力ボックスに新しい変数名を入力します。
そして「検索」というボタンをクリックすると
「検索」のボックスに入れたのと同じ文字を探して強調してくれます。
変更してよければ「置換」ボタンをクリック、
すると「置換」のボックスに入れた変数名に変更して、
次に変更前の文字がある場所に飛んで行ってくれます。


「すべて置換」というボタンもありますが、
もしかして変えてはいけないところもあるかもしれないので、
「置換」ボタンで1つずつ確認しながら変更するのをお勧めします。
もし変えたくない文字のところに来たら、
「検索」をクリックすると、置換せずに次の場所を探します。
こうして画面から強調される文字がなくなったら
変数名の変更は全て終わったことになります。
今回は意外とよくある入力ミス、スペルミスを減らすための
コピー&ペーストと
検索/置換の機能について書いてみました。
もしまだやったことがなければ
是非試してみて下さいね。
それでは、今回はこの辺で。
No response to “スクリプトの話(6)〜実はよくある入力ミス!”
Leave a Reply