フリープログラマー日記

iOS,アンドロイド開発を気ままにしながら生きてるおじさんのブログです。

第42回 Kotlin に static ないって、知ってた?

Kotlinさわって、1週間。

衝撃的だったのは、staticキーワードがないこと!
まあ、static あるかないかで言語を分ければ、きっとないほうが多いのだろう。(調査する気はありません)

ま、そこは、objectキーワードでなんとかしようかなと思ってますが、Kotlinを使っていこうかどうか検討中にちょっと便利だなと思った書き方がこれです。

val s = (1000/4).toDouble()

単に型変換をするだけですが、評価すべき式を()に入れて、 .to って打つと、.toDouble()だけでなく、いっぱい候補が出てきて、型変換が楽なのだ。

f:id:momonga117:20180616125734p:plain

あと、

Class の継承やってる時に出てきた書き方。

class MainMenu(context: Context) : View(context) {

Mainmenuクラスに渡されたコンテキストを継承元のViewクラスにそっくり渡しているのですが、面倒だなって思った反面、javaではあえて

public class MainMenu extends View {    
    // コンストラクタ
    public MainMenu(Context context) {
        super(context);
    }

というように式を書く必要があったので、楽かもしれない。

java と Kotlin、結論を出すのはまだ早いような気がします。
ま、googleの方針では、Kotlinにシフトしそうなので、Kotlin無視できないなと感じているところなんですが。

私の感覚です。異論は多々あると思いますが。

Java は、3つの中では、一番泥臭い。nullの扱いとか、暗黙の型変換とか。
あと、セミコロンが必要ってとこも、面倒かな。
Kotlin は、今回も触れたように static がないのが良くも悪くも大きな特徴で、null の扱いはswift の nil に似てるといえば似ているのかな。
(null は nil に似る・・・オヤジかー)

static をバンバン使ったswift プログラムから Kotlin への移植はちょっと困るかもしれない。
こういうケースはjava ですかね〜。

swift は外しようがないので、受け入れるしかないです。
私、obj-cやってないので。

当分、この3つを比較しながら、記事を書いていこうと思っています。