История изменений
Исправление note173, (текущая версия) :
Нет, в этом случае разумнее посмотреть сгенерированный байткод, это легко делается встроенными в java средствами.
var n = 1;
var f: Float = n.asInstanceOf[Float];
var s = n + f;
0: iconst_1
1: istore_2
2: iload_2
3: i2f
4: fstore_3
5: iload_2
6: i2f
7: fload_3
8: fadd
9: fstore 4
11: iload_2
12: istore 6
val r = n match {
case 1 => 2
case 2 => 4
case x => x * 2
}
14: iload 6
16: tableswitch{ //1 to 2
1: 51;
2: 47;
default: 40 }
40: iload 6
42: iconst_2
43: imul
44: goto 52
47: iconst_4
48: goto 52
51: iconst_2
52: istore 5
(Для не знающих jvm ассемблер, сгенерированный код полностью совпадает с аналогичным на java (в начале (float)n, в конце switch))
Исходная версия note173, :
Нет, в этом случае разумнее посмотреть сгенерированный байткод, это легко делается встроенными в java средствами.
var n = 1;
var f: Float = n.asInstanceOf[Float];
var s = n + f;
0: iconst_1
1: istore_2
2: iload_2
3: i2f
4: fstore_3
5: iload_2
6: i2f
7: fload_3
8: fadd
9: fstore 4
11: iload_2
12: istore 6
val r = n match {
case 1 => 2
case 2 => 4
case x => x * 2
}
14: iload 6
16: tableswitch{ //1 to 2
1: 51;
2: 47;
default: 40 }
40: iload 6
42: iconst_2
43: imul
44: goto 52
47: iconst_4
48: goto 52
51: iconst_2
52: istore 5