参照の比較演算
aとbは別のインスタンス(メモリ空間)を持っているので、イコールじゃfalseになるからString.equals()を使おうという話。
まぁ有名な話ですよね。
String a = new String("hoge"); String b = new String("hoge"); println("aとbは" + (a==b)); // false String c = "moke"; // new String()を省略 String d = c; println("cとdは" + (c==d)); // true //new String("test")を省略しているだけなので //c変数には干渉せずに新しくインスタンスが作られている d = "test"; println(c); // cは"moke"のままである。
Fontデータなどを毎回読み込むのもあれなので前回とFontの参照を持っておいて前回と一緒ならばFontを読み込まないような処理をする場合とかはこんな感じでいいんでしょうかね?
PFont prevFont; // 前回のフォント void entry(String txt, PFont font) { if(prevFont!=font) { // ここのイコールは大丈夫か? textFont(font); prevFont=font; } // いろんな処理 }
この参照の比較はイコールで大丈夫かなーと思ったんで確認のコードを書いてみた次第です。