モジュールの配列 | HotSoupProcessorの記録

HotSoupProcessorの記録

コンピューター言語 HotSoupProcessor の練習記録です

モジュールをクラスのように使って、オブジェクト指向でやると、
きっと配列に詰めたくなると思って、その練習。


---
; モジュールの配列

; モジュール
#module modColor nVal
#modinit int p_nVal
nVal = p_nVal
return
#modcfunc GetVal
return nVal
#global

; メイン
; モジュール型の配列を定義(3要素)
dimtype naRGB, 5, 3

; 値を設定
; 実行エラー25になる
; newmod naRGB(0), modColor, 200 ; newmodでは、配列要素をしていしてはいけないらしい
; newmod naRGB(1), modColor, 240
; newmod naRGB(2), modColor, 200
newmod modRGB0, modColor, 200
naRGB(0) = modRGB0
newmod modRGB1, modColor, 240
naRGB(1) = modRGB1
newmod modRGB2, modColor, 200
naRGB(2) = modRGB2

; 値を取得
color GetVal(naRGB(0)), GetVal(naRGB(1)), GetVal(naRGB(2))

; テスト
boxf

stop
---

dimtypeは、型を指定した配列定義。
intでもdoubleでも配列を作れるのだけど、今回はモジュール。
モジュールは5です。

<脱線>
ちなみに、5を求める関数も用意されています。
vartype。
これに、すでに作った変数を与えると、5とか、intだったら4だとか、返ってきます。
</脱線>



あと手間取ったのが、
newmodに直接配列要素を指定しちゃいけないということ。
コンパイルはOKで、実行時のエラーが出ました。
  25 "配列の要素書式が間違っています"

ググったら公式HPの説明ページがヒットしました。
http://www.fujidig.com/ohdl/doclib/error.htm
  配列要素の書き方が間違っている場合や、配列要素を書いては
  いけない場所に書かれている時に表示されます。
とのこと。
後者の場合なんだろうな。

ということで、配列でない変数で作ってから、配列要素へ移して解決。