競プロでKotlinはじめました
Kotlinはじめました
Kotlinとは
JVM上で動くヤツですね。Javaと完全な互換性を持ってて、クラスの流用とかできちゃう優れもの。(JVMはJava Virtual Machineだったはず)
噂によると、単純なJavaと同じだからウィンドウも普通に出せるし作れるとか…。いずれやってみたいです。
環境の作成
Kotlinって、Android StudioとかIntelliJ IDEAとかのIDEが必要っぽかったんですが、コマンドラインのやつもあるらしいってことでそれを。
ここのページから、kotlin-compiler-X.X.X.zipってやつ(2017/11/22時点で1.1.60)をDLしてください。展開したらCドライブとか好きな場所に移してPATHを通してあげてください。
PATHの通し方とかは、調べよう。Windows 10から環境変数どっからいじるのかわかりにくくなってるので頑張れ。
ってことで、PATH通したらコマンドラインから$ kotlin -version
とかで確認してみてください。
Kotlinの基礎の基礎だけ
とりあえずハローワールドだけしときますね。他の書き方はQiitaとかでまとまってるんでそちらを見たほうがいいかと。ちなみに、Java互換なんで個人的にはJavaの勉強が必須ですね。標準入力でScannerクラスとか使うにしても使い方はJavaなんで。
fun main(args: Array<String>){ println("Hello World") }
こんな感じ。メイン関数はクラスに属さないとか、関数はfunで宣言するとか、セミコロンはいらないとか。
これが、例えば「helloWorld.kt」って言うファイルだったとしましょう。コンパイルはこう。$ kotlinc helloWorld.kt
ってかんじでkotlincコマンドで。
コンパイルすると「HelloWorldKt.class」ってファイルが生成されます。んで、ここ躓いたんだけど実行に気をつけてください。
$ kotlin HelloWorldKt
だめな例あげます。$ kotlin ./HelloWorldKt.class
、まあこれはjavaやってる人だったら違和感あるんでしょうね。僕はjavaやっててもふんふんふーんつって躓いたわけですけども。
これで使い方はOKかな。
標準入出力
これだけやっときましょうか。競プロだと必須スキルですからね。
JavaのScannerクラスを使うとしたら次のようになります。
import java.util.Scanner fun main(args: Array<String>){ val scn = Scanner(System.`in`) //Scannerのインスタンスを作成 val s: String = scn.nextLine() //入力を行で取得 val i: Int = Integer.parseInt(s)//Int型に変換 val j: Int = scn.nextInt() println(i + j) }
こんな感じ、定数はvalで宣言できます。察せ。変数はvar。らしいよ。
System.in
だけ注意で、inが予約語?で使われてる関係で上みたいに書かないといけません。
以上で。ちょっと長くなっちゃったけど、なかなか面白いんで皆もやってみよう。
お疲れ様でした。