Sponsored links

【AutoLISP 初めの一歩】文字列と数値

Sponsored links
初めの一歩
Sponsored links

123 は数値、”123″ は文字。使い分けましょう。

Sponsored links

文字列と数値

文字列と数値の違い

AutoLISPでプログラミングする場合、文字列の場合、必ず ”” クォーテーションマークで囲う必要があります。そして数値はそのままです

例えば、同じ数字を使う時でも、“123” は文字列123は数値です。

人には同じ数字に見えても、コンピューターは別物として扱うから、必ず違いを理解して使い分けてね。

使い分け方

関数によって必要な情報を引数として一緒に書き込みます。使う関数に必要な引数がどちらのタイプなのか、ヘルプページ見て調べましょう。

文字列が必要な関数に数字を入力したり、逆に数値が必要な関数に文字列を入力するとエラーになります。

文字列の例

例えば、警告ボックスに文字を表示する関数 alert。Autodeskの関数ページを見ると、

関数と一緒に引数としてメッセージを入れるようになっていてい、タイプに文字列とありますね。なので、ここに入れる引数はダブルクォーテーションマークで囲ったものでないといけません。

数値の例

数値の例でいうと、2つ以上の数字を合算する機能がある + があります。
Autodeskの関数ページを見ると、

引数はnumber とあり、number の説明の所に数値とありますね。

この場合、(+ “1” “2”) というような書き方をすると文字列として認識されてエラーになります。ダブルクォーテーションは無しで、(+ 1 2) としなければ、数値として処理されません。

Jagaimo
Jagaimo

文字列にダブルクォーテーションマークを忘るのはありがちなミスです。

AutoLISPプログラムが作動しないとき、引数の文字列/数値が間違っていないかチェックしよう。

エラーメッセージ

数字/文字列が間違っているAutoLISPを読み込むとエラーメッセージがコマンドバーに出ます。

numberp は、数字が入っていなければいけない所に違う物がある。
stringpは、文字列が入っていなければいけない所に違う物がある。

という意味です。

例えば、(+ “1” “2”)だと、numberp: “1”、(alert 12) だと stringp:12 というメッセージがコマンドバーに表示されます。

まとめ

  • AutoLISPでは、数値と文字列は違う物として使い分けている。
  • 数値はそのまま数字だけ。例 123
  • 文字列にはダブルクォーテーションマーク ” ” が付く。例 ”123″
  • 間違えるとエラーになってプログラムが作動しない。
  • 文字列/数値の間違いはありがちなので気を付ける。
  • エラーメッセージ numberpは数値、stringpは文字列が必要なところに違う物があるとうこと。

Comments