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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0430
にゃんちゃんモジュール内で定義した命令での内部エラーについて8解決


にゃんちゃん

リンク

2012/4/30(Mon) 09:28:43|NO.46359

こんにちは。
モジュール内で定義されたユーザ定義命令において、引数として受け取ったパラメータを直接書き換えようとすると内部エラー23が出ます。
これはHSPの使用でしょうか、それとも私のミスでしょうか?
上記の現象を再現するためにプログラムを書きました。
よろしくお願いいたします。

#module main #deffunc test int test1 if test1<0:test1=100 return #global test -1 end
これを実行しますと、内部エラー23が出ます。



この記事に返信する


TMKL

リンク

2012/4/30(Mon) 09:35:17|NO.46360

intは整数ですから、書き換えられません
変数はvarやarrayです



TMKL

リンク

2012/4/30(Mon) 10:12:06|NO.46363

こういうことです

#module main #deffunc test var test1 if test1<0:test1=100 return #global a=-1 mes a test a mes a stop



にゃんちゃん

リンク

2012/4/30(Mon) 10:32:05|NO.46365

なるほどそういうことですか。
私は、
int(整数値)を受け取る→そのうけとった変数は整数型変数になる→書き換えできる
と勝手に思っていましたが、ちがうんですね。ちょっとややこしいかもです。
個人的には混乱を避けるために整数型の変数に自動補正してほしいところですが、回避する方法はいくらでもあるので、そういうものであると覚えておきます。
ありがとうございました。



TMKL

リンク

2012/4/30(Mon) 10:59:52|NO.46369

>そのうけとった変数は整数型変数になる
受けとった変数なんかありません

上記の場合「test1」は「パラメータ」です
きちんと理解しなさい

また、このようなことはすべてマニュアルに書いてあります
ろくにマニュアルも読もうとしないで、
>個人的には混乱を避けるために整数型の変数に自動補正してほしい
とかふざけた発言しないでください



にゃんちゃん

リンク

2012/4/30(Mon) 16:23:14|NO.46375

一応マニュアルはすべて眼を通していたのですが、誤解していたみたいです。ごめんなさい。



TMKL

リンク

2012/4/30(Mon) 16:29:51|NO.46376

えっ!読んだ . . .!
こちらこそふざけた発言してスミマセン



check

リンク

2012/4/30(Mon) 21:21:43|NO.46385

int(整数値)を受け取る……までは正しく解釈できているのに、
→そのうけとった変数は整数型変数になる……となるのは一体なぜだ?
自ら「int(整数値)を受け取る」と言っているのに、それがいきなり変数に変わってしまうなんて。

本人が理解したのならそれでいいんだけれども。



にゃんちゃん

リンク

2012/5/1(Tue) 17:35:38|NO.46401

最初に#deffuncのマニュアルを読んだときに、数値や文字列を受け取ってそれを文字で置き換えて使えるということは変数なのではないかと直感的に錯覚し、そのまま2年ほど突っ走ってしまったもので、へんな理解になっていたみたいです。
上記で言っていることもなんだか頓珍漢な気がしますが、現在はこのスレッドで学ばせてもらったおかげでちゃんと理解できています。



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