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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0514
WHITEHSPで型を限定?4解決


WHITE

リンク

2010/5/14(Fri) 20:01:54|NO.32646

HSPで変数が整数型、実数型の双方に変わらないようにすることってできますか??
具体的には

number=2
number=2.0 //ここでエラー
mes number // 2 と出力される

逆に

value=2.0
value=2 //ここでエラー
mes value // 2.000・・・ と出力される

みたいな



この記事に返信する


KA

リンク

2010/5/14(Fri) 20:38:35|NO.32647

そういう柔軟性?が、HSPの使いやすい所と思いますが・・

そうしたいのであれば、

number=2 number=1*2.0 mes number 逆に value=2.0 value=1.0*2 mes value
みたいに、常に最初を整数か実数の”1”でかけるようにしては?



チェホ

リンク

2010/5/14(Fri) 21:12:51|NO.32648

配列にすれば、自動的に怒られるよ〜

dim A, 2 A ( 0 ) = 1 A ( 1 ) = 1.0
これで「異なる型の〜」みたいにエラーが出る。
これの重要なところは、(超重要)宣言したときのdimやddimに関係なく、
配列の0番目の数値によって判断されるらしいところです。

//「整数」で宣言し、 //「0」番に「整数」を入れてから、 //「1」番に「実数」を入れる。 dim A, 2 A ( 0 ) = 0 A ( 1 ) = 0.0;ここでエラー //「整数」で宣言し、 //「0」番に「実数」を入れてから、 //「1」番に「整数」を入れる。 dim A, 2 A ( 0 ) = 0.0 A ( 1 ) = 1;ここでエラー //「整数」で宣言し、 //「1」番に「整数」を入れて、 //「0」番に「実数」を入れてから、 //「1」番に「整数」を入れる。 dim A, 2 A ( 1 ) = 1 A ( 0 ) = 0.0;エラーしない!! A ( 1 ) = 1;逆にこれがエラー!!!
活用方法は次で。



チェホ

リンク

2010/5/14(Fri) 21:30:16|NO.32649


// 変数専用モジュールを作る。 #module 変数モジュール // 変数初期化関数 #deffunc 変数初期化 dim 整数変数 dim 実数変数;あえて整数型で宣言してるのは、拡張マクロがなくてもいいように。 整数変数 = 0 実数変数 = 0.0 return // ここから変数名を宣言 // 整数 #enum global 整数_A = 1;1番から始めるのは、0番は型の限定に使っているため。 #enum global 整数_B #enum global 整数_C // 実数 #enum global 実数_D = 1 #enum global 実数_E #enum global 実数_F // ここからマクロを登録 // 整数 #define global A 整数変数@変数モジュール(整数_A) #define global B 整数変数@変数モジュール(整数_B) #define global C 整数変数@変数モジュール(整数_C) // 実数 #define global D 実数変数@変数モジュール(実数_D) #define global E 実数変数@変数モジュール(実数_E) #define global F 実数変数@変数モジュール(実数_F) #global 変数初期化 //ここから自由に書いていいよ〜 A = 1 ;例 ;D = 1 ; 有効にするとエラーが出るよ〜
↑のモジュールでは、
整数変数 A, B, C
実数変数 D, E, F
を宣言してる。もちろんスクリプトエディタにぶっこめばそのまま動く。

欠点としては、変数の宣言はこのモジュール内で最初にしておかなければならない事。
それすらも自動化するコンパイラもどきも作ってあるけど、それは企業秘密なのです。



WHITE

リンク

2010/5/15(Sat) 10:57:24|NO.32650

なるほどぉ、HSPでもできるんですね^^
とても参考になりました、ありがとうございました☆



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