« Processing ニュースアグリゲーター | main | ソーシャルブックマークは、時事ネタ共有装置? »
2005年04月25日
近況報告
p5でライブラリを作ろうとして30秒でコケタ。
flashと比べちゃいけないのだろうけど、型チェックが鬼のように厳しい。
例えば、配列の総和を求める関数を作るとして、その場合 float用とint用に関数を2つ宣言して、似たような文を2重にかかなければならないんでしょうか?
}
public void sum(float[] ar){
}
なんでも2重に書くのメンドクサイなぁ。APIの2重定義はしかたないとして、内部で共通処理する関数つくれないのかな。
とりあえず引数をObjectにしてまとめてみたら、内部で足し算ができなくなった・・・
教えてエロイ人。
投稿者 Taka : 2005年04月25日 16:51
book
bookmark
trackbacks
this entry's trackback URL:
http://www.fladdict.net/cgi-bin/mt3/mt-tb.cgi/114
このリストは、次のエントリーを参照しています: 近況報告:
» phentermine from phentermine
[read more]
トラックバック時刻: 2006年03月06日 11:11
comment
こんにちは
私も同じようなこと常日頃から思っておりました。
最近の私の最適解は、
型の厳しさから逃げることはできないって割り切ってます。
それで、float系とint系の計算用クラスを作っちゃいます。
#無理やりも可能なんですけどね^^;
ソースの可読性が落ちるのでしてません。
by arkw : 2005年04月25日 17:22
Javaだとgenericsだそうですが、p5で使え…なさそう?
(すいません確かめてません)
適当にgenericsでぐぐったページです。
http://www.mamezou.com/tec/equip001.htm
by key : 2005年04月25日 17:44
>最近の私の最適解は、
型の厳しさから逃げることはできないって割り切ってます。
あー、所詮世の中に楽な解決方法は存在しないのですね(涙
了解しました、意を決して全部2重に書きます。
情報ありがとうございますー!
by Taka : 2005年04月25日 17:44
いま確認したら、processingのfloat()とint()は配列でも変換できるんですな!
なので
public int sum(int[] array) {
return int(sum(float(array)));
}
public float sum(float[] array) {
float sum = 0;
for(int i=0 ; i < array.length ; i++) {
sum += array[i];
}
return sum;
}
みたいなのはどうだろう?
by dotimpact : 2005年04月25日 18:01
ちゃんとチェックしてないですが、Processing 内部では preprocessor か何かを走らせて、型チェック/変換をしてるのかな?引数を受け付ける各 method は挙動毎に signature は1つずつ見たいです。
http://cvs.sourceforge.net/viewcvs.py/processing/processing/
Taka さんがどんなライブラリを作ろうとしてるかよくわかりませんが、ライブラリと言うからには、static に呼べた方が便利そうだし、結論としては、詰まんないですが、既出コメントの通りだと思います。
by mizo : 2005年04月26日 01:23
はじめまして、http://bigbigbig.ameblo.jp と、http://www.wosio.flnet.org でエロイ人とwosioとして書いている者です。前々からこのサイトの方を読ませていただいていて、「教えてエロイ人」と出たので、これはコメントしなければ、ということでメインの話をさえぎってコメントさせていただきました(汗
これからもがんばってくださいね。
by エロイ人 : 2005年04月26日 22:31