Kotlin で Floor Modulo 関数を実装する

David Mbochi Njonge 2023年10月8日
  1. 新しい Kotlin プロジェクトを作成する
  2. Kotlin で Int のカスタム Floor Modulo 関数を作成する
  3. Double のカスタム フロア モジュロ関数を作成する
  4. Float のカスタム フロア モジュロ関数を作成する
  5. まとめ
Kotlin で Floor Modulo 関数を実装する

すべてのプログラミング言語には、算術演算子、代入演算子、比較演算子、論理演算子など、さまざまな計算を行うのに役立つ演算子があります。

これらの演算子は、一般的な算術演算を実行するのに役立ちますが、常に要件を満たすとは限りません。 このような状況では、開発者は、これらの演算子を使用して要件を満たすアルゴリズムを作成するために最善を尽くします。

これらのアルゴリズムは通常、メソッドを使用して抽象化されます。 結果を取得するには、適切なパラメーターを指定してこのメソッドを呼び出すだけで済みます。

例えば、mod()はKotlinのすべてのNumber型で実装された拡張関数で、この数値と別の数値の床割り算の余りを計算するためのものですが、それはDoubleまたはFloat型の引数のみを受け入れます。

このチュートリアルでは、カスタム関数を作成して、開発者の要件を満たす任意の引数を使用して、この数値を別の数値で除算した残りの部分を計算する方法を学習します。

新しい Kotlin プロジェクトを作成する

IntelliJ IDEA を開き、File > New > Project を選択します。 開いたウィンドウで、floor-modulo という名前のプロジェクトを入力し、Language セクションで Kotlin を選択し、Build system セクションで Intellij を選択します。

最後に、Create ボタンを押して Kotlin プロジェクトを生成します。

Kotlin で Int のカスタム Floor Modulo 関数を作成する

プロジェクトが生成されたら、Main.kt という名前のファイルを src/main/kotlin フォルダーの下に作成し、次のコードをコピーしてファイルに貼り付けます。

infix fun Int.floorMod(other: Double) =
    ((this % other) + other) % other

fun main(){
    val intValue = 5
    println(intValue.floorMod(3.2))
}

このコードでは、Int データ型の関数である floorMod() という名前の拡張関数を作成しました。 このメソッドは、Double 型の別の値で Int 値のフロア除算の剰余を計算します。

これは、開発者がこの関数の引数として Number 型の実装のいずれかを使用できることを意味するカスタム実装を作成する方法を示す例です。

アプリケーションを使用する前に、まず関数を定義する必要があることに注意してください。 このコードを実行して、出力が次のようになっていることを確認します。

1.7999999999999998

Double のカスタム フロア モジュロ関数を作成する

infix fun Double.floorMod(other: Int) =
    ((this % other) + other) % other

fun main(){
    val intValue = 5
    println(3.2.floorMod(intValue));
}

このコードでは、Int データ型の関数である floorMod() という名前のメソッドを作成しました。 このメソッドは、Double 値を別の Int 型の値で除算した残りの部分を計算します。

この例は前の例と同じように機能します。このメソッドに別の引数を渡す必要がある場合は、必要な引数を受け入れる関数を定義する必要があります。 このコードを実行して、出力が次のようになっていることを確認します。

3.1999999999999993

Float のカスタム フロア モジュロ関数を作成する

infix fun Float.floorMod(other: Double) =
    ((this % other) + other) % other

fun main(){
    val floatValue = 5F
    println(floatValue.floorMod(3.2))

}

ここまでで、必要な仕様を満たすフロア モジュロを計算するカスタム関数を作成する方法を理解しました。 このコードは、floorMod() という名前の拡張関数を作成し、Float データ型の関数です。

このメソッドは、Double 型の別の値を使用して、Float 値のフロア除算の剰余を計算します。

前の例で述べたように、Float の拡張関数を作成して別の引数を受け入れるプロセス。 このコードを実行して、出力が次のようになっていることを確認します。

1.7999999999999998

まとめ

このチュートリアルでは、カスタム拡張関数を作成して、2つの数値のフロア モジュロを計算する方法を学びました。 これまで取り上げたトピックには、IntDouble、および Float データ型のフロア モジュロの計算が含まれます。

LongShortByte など、残りの Number の実装にも同じアプローチを使用する必要があることに注意してください。

David Mbochi Njonge avatar David Mbochi Njonge avatar

David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.

LinkedIn GitHub