가변인자를 활용하면 인자의 갯수를 유동적으로 받을 수 있습니다.
이를 활용하여 메소드를 만들 때 유연하게 대처가 가능할 것 같습니다.
간단한 예시를 확인할 수 있습니다.
1. 가변인자 사용하기
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 인자가 없는 경우 size 0 이다
printString()
printString("vararg1")
printString("vararg1", "vararg2")
// 배열같은 경우 * 를 사용해서 한번에 넘겨줄 수 있다.
val stringArray = arrayOf("vararg1", "vararg2", "vararg3", "vararg4")
printStringWithTag("printStringWithTag1", "vararg1", "vararg2", "vararg3")
printStringWithTag("printStringWithTag2", *stringArray)
}
private fun printString(vararg strings: String) {
var result = ""
for (string in strings) result += "$string "
Log.d("", result)
}
private fun printStringWithTag(tag: String, vararg strings: String) {
var result = ""
for (string in strings) result += "$string "
Log.d(tag, result)
}
2. 결과
D/:
D/: vararg1
D/: vararg1 vararg2
D/printStringWithTag1: vararg1 vararg2 vararg3
D/printStringWithTag2: vararg1 vararg2 vararg3 vararg4
[참고자료]
https://codechacha.com/ko/kotlin-variable-arguments/
0 comments: