-- / --
--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

12 / 05
Thu

紙で中指を結構深く切ってしまった Ziphil です。

前のエントリーの続きです。 Kotlin のプロパティの概念は素晴らしいと思うんですが、 これを使うと Java との統一感が失われてしまいます。 ということで、 Java の get, set で始まるメソッドを、 Kotlin のプロパティのゲッタとセッタの呼び出しのように書けるようになれば、 統一感もありますし、 コードも綺麗になります。 ついでに、 引数のないメソッドはカッコを省略できるようにもしてほしいですね。 つまり、 こういうことです。

// 従来の書き方
buffer.setFont(Font("sans-serif", 0, 12))
buffer.setColor(Color(0xFF, 0xFF, 0xFF))
val y: Int = buffer.getFontMetrics()!!.getAscent() * 2 / 3 + 5
// 提案する書き方
buffer.font = Font("sans-serif", 0, 12)
buffer.color = Color(0xFF, 0xFF, 0xFF)
val y: Int = buffer.fontMetrics!!.ascent * 2 / 3 + 5

・・・と思っていましたが、 同じことがここですでに提言されてました。 Kotlin 製作者の応答はこんな感じです。

あなたの提言にはかなりの微妙な点があります。 Kotlin は、 強い静的型付け言語であるという点 Groovy との大きく異なっているので、 厳密にものごとを考えなくてはなりません。 例えば、 もし何らかのクラスから name と getName の両方のメソッドを継承したとしたら、 そのプログラムはどう動くべきでしょうか?

・・・はい、 ごもっともです。 しかし、 name メソッドが呼ばれた場合、 name という名前のメソッドが可視ならそれを実行し、 不可視なら getName メソッドを実行しようとするようにすれば、 問題はない気がするんですが・・・。

スポンサーサイト

comment ×0
コメント
管理者にだけ表示を許可する
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。