From: nagai@... Date: 1999-07-01T14:30:14+09:00 Subject: [ruby-dev:7268] Re: TkVariable 永井@知能.九工大です. From: matz@netlab.co.jp (Yukihiro Matsumoto) Subject: [ruby-dev:7267] Re: TkVariable Date: Thu, 1 Jul 1999 11:35:50 +0900 Message-ID: matz> In message "[ruby-dev:7266] Re: TkVariable" matz> on 99/06/30, Koji Arai writes: matz> |> チェックを追加するか、このままでもよしとするか... matz> | matz> |TkVariableにどんな機能があるか確認してるうちに深み matz> |にはまっただけなので、このままでも支障はないです。 matz> | matz> |実際、-textvariableとか以外に使いみちがないですよ matz> |ね? matz> そーですねえ。アレは私が初期にエイヤっと実装したコードそのま matz> まですから、もうちょっといろいろすれば文字列以外のデータ型の matz> 情報交換もできるのかもしれません。他でもTclとそういうやりと matz> りをしてるのだから。 Tcl の中ではすべてが文字列ですから,自ずと限界がありますよね. 妥協策の一つとしては,TkVariable のインスタンス生成時に, その変数で仮定するクラスを指定 (といっても,整数,実数,Array, Hash くらいですかね? ) することでしょうか. あるいは,ruby 側で設定された値のクラスで受け取ると仮定するか. 多分,後者の方が便利だと思います. いずれの場合も,期待されたクラスに適切に変換できない場合には 例外を上げるようにすると良さそうです. Tcl から渡されるのはいずれにせよ文字列ですし.(^_^) こういう形式でしたら,割とすっきりしていて 実装もそう難しくはないと思いますが,いかがでしょうか? ただ,Tcl で扱うことができる配列は 1 次元ですから, ruby 側で多次元のものをどう扱うかという問題は残ります. まぁ,多分,多次元で与えねばならない case はないと思いますので, 「仕様上,多次元は扱えない」で問題ないと考えますが... # 実装してみてもいいのですが,時間がなくて... -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp