だってプログラマーだから

9月4日木曜日、曇り

Kotlin のプログラミングコンテストが今週土曜日、日本時間では 23:35 〜 26:05 の二時間半に渡って開催されるとか。

やって、みるかなー…… という気を起こしてしまったので、とりあえずエントリーしておいた。

土曜日のコンテストに先立って練習問題が7問出ているようで、先ほど1問解いてみた。……いや、解こうとしていた。
Kotlin で main 関数ってどう書くんだっけ? Kotlin で標準入力から読むのって、標準出力に書き出すのって、どうやるんだっけ?(って、そこからかーい!!)

fun main(args: List<String>): Unit {
  // 回答を出力するコード
  println(...)
}

へどもどしながらこんなプロトタイプを書いて登録してみると、なぜか実行時エラーになる。
なぜだ、なぜだなぜなんだ?! 計算の型はあってるし、ローカルのスクラッチファイルで試すかぎり正しい答えが出ている。

そしてしばらくのち、 main の引数の型が違うって。 Array<String> ですって。

っていうか! それなら実行時エラーでなくてコンパイルエラーにするとか! とか! してくれたら!! いいのに!!!

オーバーロードできるので fun main(args: List<String>): Unit な関数が定義できて、しかし実行時には fun main(args: Array<String>: Unit な関数定義を探すから(そして見つからないので)実行時エラーになっていたんだろう。
と、後づけでなら理解できるわけだけれど。

うーーーーん…… 前途、多難だなあ。

この記事が気に入ったらサポートをしてみませんか?