Kotlin Fest 2018 の mixi ブースで出題されていたという問題が以下に掲載されていたので解いてみた。

Kotlin Quiz @ Kotlin Festの正解発表 – mixi developers – Medium

Q1.次のコードを実行するとどうなるでしょうか?

val a: String? = null
val b: String = “kotlin”
println(a==b)
  1. NullPointerException
  2. true
  3. false
  4. コンパイルできない

リファレンスは読んだはずだけど忘れてて間違えた😱

Equality - Kotlin Programming Language

Q2.次のうち、 data classが提供しない機能はどれでしょう?

  1. JSONとの相互変換
  2. toString() を自動生成
  3. copy() でコピーインスタンスを作ることができる
  4. hashCode() と equals() を自動生成

これは簡単だった😎

Q3.次のコードを実行するとどうなるでしょうか?

foo()()
  1. 2次元配列を生成する
  2. foo() を非同期に実行する
  3. コンパイルに失敗する
  4. foo() が返す関数を実行する

invoke() で呼ぶイメージがあり、2択をミス😢

Q4.次のコードを実行するとどうなるでしょうか?

val s: String? = null
if (s?.isEmpty()) println(“true”)
  1. 何も出力されない
  2. true
  3. NullPointerException
  4. コンパイルできない

これは書いたことがあるし、基本文法なので余裕😃

Q5.次のコードを実行するとどうなるでしょうか?

val x: Int? = 2
val y: Int = 3
val sum = x?:0 + y
  1. 3
  2. 5
  3. 2
  4. 0

+ 演算子の優先度はだいたい高いというイメージで正解✌️

Q6.次のコードを実行するとどうなるでしょうか?

open class A(val x: Any?)
object B : A(C)
object C : A(B)

println(B.x)
println(C.x)
  1. null; null;
  2. C@1544bf85; null
  3. ExceptionInInitializerError
  4. コンパイルできない

リファレンスに書いてない系のマイナーケース難しすぎる…😇

Q7.次のコードを実行するとどうなるでしょうか?

fun oops() {
 return throw throw return
}

print(oops())
  1. kotlin.Nothing
  2. kotlin.Any
  3. kotlin.Unit
  4. コンパイルできない

お、おう…😅

という感じで全7問中3問正解だった。悔しいけど3問正解が中央値ということでとりあえず良かった(?)