JavaとKotlinのOR演算子(Bitwise OR)の違い

2018年4月27日(更新: 2018年5月19日)

JavaのOR演算子とKotlinのOR演算子が異なっていたので、それについて記載します。

JavaのOR演算子

Javaでは、OR演算子はバー(|)でした。

Notification.Builder builder = new Notification.Builder(this);
builder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS)

KotlinのOR演算子

Kotlinでは、OR演算子を以下のように記述します。

val builder = Notification.Builder(context)
builder.setDefaults(Notification.DEFAULT_SOUND or Notification.DEFAULT_VIBRATE or Notification.DEFAULT_LIGHTS)

OR演算子が | から or に変わりました。

or の定義は Primitives.kt において以下のように記述されています。

/** Performs a bitwise OR operation between the two values. */
public infix fun or(other: Int): Int

(例のコードの setDefaults が API26 から非推奨とか Notification.DEFAULT_ALL ひとつで済むとかは目を瞑って下さい)

参考

コメントを残す

メールアドレスが公開されることはありません。