Why is `when` in kotlin compiled down to using .or...
# getting-started
u
Why is
when
in kotlin compiled down to using .ordinal() and not directly like in java?
Copy code
public final class AudioRouter$WhenMappings {
   // $FF: synthetic field
   public static final int[] $EnumSwitchMapping$0 = new int[AudioRoute.values().length];

   static {
      $EnumSwitchMapping$0[AudioRoute.DEFAULT.ordinal()] = 1;
      $EnumSwitchMapping$0[AudioRoute.SPEAKER.ordinal()] = 2;
   }
}
.....
switch(AudioRouter$WhenMappings.$EnumSwitchMapping$0[it.ordinal()]) {
               case 1:
                  AudioRouter.this.audioManager.setSpeakerphoneOn(false);
                  break;
               case 2:
                  AudioRouter.this.audioManager.setSpeakerphoneOn(true);
               }
....

when (it) {
  AudioRoute.DEFAULT -> {
      audioManager.isSpeakerphoneOn = false
   }
   AudioRoute.SPEAKER -> {
       audioManager.isSpeakerphoneOn = true
   }
}