[コトリン・ストディ10]0716
中尉関数
通常、メンバー関数はInt.toString()として使用され、後の括弧と点の原理は中位数関数表現法
中位関数の条件
fum main(){
// 일반 표현법
val multi = 3.multiply(10)
// 중위 표현법
val multi = 3 multiply 10
}
// infix 키워드 추가
// Int를 확장해서 multiply() 함수가 하나 더 추가되었음
infix fun Int.multiply(x: Int): Int { // infix로 선언되므로 중위 함수
return this * x
}
リロード関数の場合
再帰とは
自分自身を再参照し、
再帰関数には、呼び出しを再開する独自の特徴があります.
再帰関数の必要条件
末尾再帰関数
次は一般的な再帰関数の形式です.
fun main() {
val number = 4
val result: Long
result=factorial(number)
println("Factorial: $number -> result")
}
tailrec fun factorial(n: Int, run: Int = 1): Long {
return if (n == 1) n.toLong() else factorial(n, factorial(n-1)
}
使用後、次のように積み重ねます.factorial(4)
4factorial(3)
4(3factorial(2))
4(3(2factorial(1))
4X(3X(2X1)) = 24
次にtailecを使用する例を示します.
fun main() {
val number = 5
println("Factorial: $number -> ${factorial(number)}")
}
tailrec fun factorial(n: Int, run: Int = 1): Long {
return if (n == 1) run.toLong() else factorial(n-1, run*n)
}
Reference
この問題について([コトリン・ストディ10]0716), 我々は、より多くの情報をここで見つけました https://velog.io/@ssook1222/코틀린-스터디-10-0716テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol