English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Kotlin には算術、割り当て、比較演算子などを実行できる演算子セットがあります。これらの演算子の使用方法について学びます。
演算子は、操作数(変数と値)に対して演算を行う特別な記号(文字)です。例えば、+ は加算演算子です。
ではKotlin 変数この記事では、変数の宣言と値の割り付けについて学びました。今度は、演算子を使用して様々な操作を行う方法を学びましょう。
以下は Kotlin における算術演算子の一覧です:
演算子 | 説明 |
---|---|
+ | 加法演算子(文字列結合にも使用されます) |
- | 減法演算子 |
* | 乘法演算子 |
/ | 除法演算子 |
% | 取模演算子 |
fun main(args: Array<String>) { val number1 = 12.5 val number2 = 3.5 var result: Double result = number1 + number2 println("number1 + number2 = $result) result = number1 - number2 println("number1 - number2 = $result) result = number1 * number2 println("number1 * number2 = $result) result = number1 / number2 println("number1 / number2 = $result) result = number1 % number2 println("number1 % number2 = $result) }
プログラムを実行したときの、出力は以下の通りです:
number1 + number2 = 16.0 number1 - number2 = 9.0 number1 * number2 = 43.75 number1 / number2 = 3.5714285714285716 number1 % number2 = 2.0
+ 演算子は、String値を連結するためにも使用できます。文字列を結合します。
fun main(args: Array<String>) { val start = "Talk is cheap."" val middle = "Show me the code."" val end = "- Linus Torvalds" val result = start + middle + end println(result) }
プログラムを実行したときの、出力は以下の通りです:
Talk is cheap. Show me the code. - Linus Torvalds
例えば、以下を使用していると仮定します + 算術演算子は数字 a と b を足します。
バックグラウンドで、式 a + b が a.plus(b) メンバ関数を呼び出します。plus 演算子は String 値およびその他の基本データ型(Char および Boolean除く)。
// + 基本データ型の演算子 operator fun plus(other: Byte): Int operator fun plus(other: Short): Int operator fun plus(other: Int): Int operator fun plus(other: Long): Long operator fun plus(other: Float): Float operator fun plus(other: Double): Double // 文字列の結合に operator fun String?.plus(other: Any?): String
さらに、以下を使用できます + 演算子はユーザー定義の型(オブジェクトなど)を処理するために plus() 関数をオーバーロードして処理します。
推薦の読書: Kotlin 演算子オーバーロード
これは算術演算子および対応する関数の一覧です:
表現 | 関数名 | 使用法 |
---|---|---|
a + b | 加える | a.plus(b) |
a-b | 減る | a.minus(b) |
a * b | 乗る | a.times(b) |
a / b | 除す | a.div(b) |
a%b | 余数を取る | a.mod(b) |
代入演算子は変数に値を代入するために使用されます。私たちはすでにシンプルな = 代入演算子を使用していました。
val age = 5
ここでは、= 演算子を使用して 5 変数 age に代入されます。
以下はすべての代入演算子および対応する関数の一覧です:
表現 | に等しい | 使用法 |
---|---|---|
a + = b | a = a + b | a.plusAssign(b) |
a-= b | a = a-b | a.minusAssign(b) |
a * = b | a = a * b | a.timesAssign(b) |
a / = b | a = a / b | a.divAssign(b) |
a%= b | a = a%b | a.modAssign(b) |
fun main(args: Array<String>) { var number = 12 number *= 5 // number = number*5 println("number = $number") }
プログラムを実行したときの、出力は以下の通りです:
number = 60
これは一元演算子であり、その意味および対応する機能の表です:
演算子 | 説明 | 表現 | 使用法 |
---|---|---|---|
+ | 一元加 | +a | a.unaryPlus() |
- | 一元減 | -a | a.unaryMinus() |
! | 不是(値を反転) | !a | a.not() |
++ | 増加:値を加える1 | ++a | a.inc() |
-- | 減少:値を減らす1 | --a | a.dec() |
fun main(args: Array<String>) { val a = 1 val b = true var c = 1 var result: Int var booleanResult: Boolean result = -a println("-a = $result") booleanResult = !b println("!b = $booleanResult") --c println("--c = $c") }
プログラムを実行したときの、出力は以下の通りです:
-a = -1 !b = false --c = 0
これは相等および比較演算子であり、その意味および対応する関数のリストです:
演算子 | 説明 | 表現 | 使用法 |
---|---|---|---|
> | 大于 | a> b | a.compareTo(b)> 0 |
< | 小于 | a <b | a.compareTo(b)<0 |
> = | 大于 或 等于 | a> = b | a.compareTo(b)>= 0 |
<= | 小于 或 等于 | a <= b | a.compareTo(b)<= 0 |
== | 等于 | a == b | a?.equals(b)?:(b === null) |
!= | 不等于 | a!= b | !(a?.equals(b)?:(b ===null)) |
比較および等価演算子は制御フローに使用されます、例えば:if 表現、when表現 および ループ。
fun main(args: Array<String>) { val a = -12 val b = 12 //使用する大于演算子 val max = if (a > b) { println("a大于b") a } else { println("b大于a") b } println("max = $max") }
プログラムを実行したときの、出力は以下の通りです:
bがaより大きい max = 12
Kotlinには論理演算子が2つあります:|| と &&
これは論理演算子であり、その意味と対応する関数の表です。
演算子 | 説明 | 表現 | 対応する関数 |
---|---|---|---|
|| | もしもどのブール式もtrueならtrue | (a>b)||(a<c) | (a>b)or(a<c) |
&& | すべての布尔値表达式がtrueの場合、trueになります | (a>b)&&(a<c) | (a>b)and(a<c) |
注意:orとandは中置表現をサポートする関数です。
論理演算子は、制御フローを制御するために使用されます。例えば、 if表現、when表現 および ループ。
fun main(args: Array<String>) { val a = 10 val b = 9 val c = -1 val result: Boolean // resultがtrueの場合は、最大のものです result = (a>b) && (a>c) // result = (a>b) and (a>c) println(result) }
プログラムを実行したときの、出力は以下の通りです:
true
in演算子は、オブジェクトが集合に属しているかどうかを確認するために使用されます。
演算子 | 表現 | 使用法 |
---|---|---|
in | a in b | b.contains(a) |
!in | a !in b | !b.contains(a) |
fun main(args: Array<String>) { val numbers = intArrayOf(1, 4, 42, -3]) if (4 in numbers) { println("numbers配列は以下を含んでいます 4.") } }
プログラムを実行したときの、出力は以下の通りです:
numbers配列は以下を含んでいます 4.
以下は、Kotlinで特定の関数を持つインデックスアクセス演算子を使用する例です。
表現 | 使用法 |
---|---|
a[i] | a.get(i) |
a[i, n] | a.get(i, n) |
a[i1, i2, ..., in] | a.get(i1, i2, ..., in) |
a[i] = b | a.set(i, b) |
a[i, n] = b | a.set(i, n, b) |
a[i1, i2, ..., in] = b | a.set(i1, i2, ..., in, b) |
fun main(args: Array<String>) { val a = intArrayOf(1, 2, 3, 4, - 1]) println(a[1]) a[1]= 12 println(a[1]) }
プログラムを実行したときの、出力は以下の通りです:
2 12
以下は、Kotlinで特定の関数を持つinvoke演算子を使用する例です。
表現 | 翻訳 |
---|---|
a() | a.invoke() |
a(i) | a.invoke(i) |
a(i1, i2, ..., in) | a.inkove(i1, i2, ..., in) |
a[i] = b | a.set(i, b) |
Kotlinでは、括弧がinvokeメンバー関数の呼び出しに変換されます。
Javaとは異なり、Kotlinにはビットおよびシフト演算子がありません。これらのタスクを実行するために、様々な機能(中間記号のサポート)を使用します:
shl - シグネチャ左シフト
shr - シグネチャ右シフト
ushr - 無符号右シフト
and - ビットと
or - ビット或
xor - ビット異或
inv - ビット反転
こちらのページにアクセスして、Kotlinでのビット演算もっと情報
また、Javaとは異なり、Kotlinには三項演算子がありません。