HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0521
ルーイヨッシーstrやintについて6解決


ルーイヨッシー

リンク

2006/5/21(Sun) 15:24:53|NO.810

こんにちは!
最近気づいたのですが、
a = 1234
str(a) mes a
とすると、エラーになります。
マニュアルだと、型を変更してもなるべく保とうとする、と書いてあったので
大丈夫と思ってたのですが・・・どうすればいいのでしょうか?
まさかstr命令の間違いとかはないでしょうけど・・・



この記事に返信する


hiroki

リンク

2006/5/21(Sun) 16:12:42|NO.811

strは、命令ではなく関数です。
よく見てみましょう。



K

リンク

2006/5/21(Sun) 16:13:21|NO.812

>str(a)
ここが、エラー原因

やるなら

a=str(a) ;aの型を変えたくないなら b=str(a) ;表示する時だけ文字列にしたいなら(この場合str無くても出来ちゃうけど) mes str(a)
str()は文字列を返してるだけで代入はしない
(関数と命令は違う物)



Drip

リンク

2006/5/21(Sun) 16:14:34|NO.813

Dripです。

 ルーイヨッシーさん、こんにちは。ルーイヨッシーさんが提示されたスクリプトでエラーするのは
当然です。そのスクリプトは、↓のスクリプトと同じ意味です。

a = 1234 "1234" mes a
不可解な点に気づかれたでしょうか。
スクリプト中に文字列をそのまま書いても当然エラーします。
strは関数なので、次のように書いてください。

a = 1234 mes str(a) //すなわち mes "1234"
関数と命令の違いは、付属のマニュアルをよくお読みください。



Irisawa

リンク

2006/5/22(Mon) 02:42:27|NO.815

str関数を2.xxの命令と同じように使用したい場合はマクロ化してください。


#undef str #define str(%1) %1 = str@hsp(%1) a = 1234 str a mes a stop

ただし、strやint, double関数などをマクロで命令化すると#deffunc/#defcfuncなどの
パラメータで利用できなくなったりするのでご注意下さい。
(パラメータの型指定と同名のため、global指定した場合や同モジュール内で置き換えた
場合に問題になります)

基本的には関数のまま利用した方が便利なので新しい(HSP3の)ルールに慣れてください。



Irisawa

リンク

2006/5/22(Mon) 02:47:45|NO.816

そもそも、HSP HELP Browserの関数の書式部分で戻り値の記述がないのが問題なのかも
しれませんね。


function(arg1, arg2, ...) ↓ p1 = function(arg1, arg2, ...)

のように書いてあれば分かりやすいと思うんですけどね。



ルーイヨッシー

リンク

2006/5/22(Mon) 06:52:28|NO.817

ああ、すいません、関数をあまり使った事が無かったので・・・
お騒がせしました・・・



ONION software Copyright 1997-2018(c) All rights reserved.