▶ with
with 함수는 인자로 받는 객체를 this 로 사용할 수 있다.
class withTestClass {
var number = 10
fun sum(a:Int,b:Int): Int{
return a+b
}
}
fun main(args:Array<String>){
var testClass = withTestClass()
var num = with(testClass){
number = number + 10
sum (10,number)
}
println(num) //30
}
객체를 생성하고 이것을 with 함수의 인자로 넘겨받았다.
그리고 with 로 시작한 코드블록에서 실제로 testClass 의 객체를 this 로 사용할 수 있게 되었다.
멤버변수인 number 의 값을 10 늘려주고, sum 메소드를 클래스 내부에서 사용하는 것처럼 호출하였다.
그리고 sum 의 리턴값을 리턴해주었다. with 는 코드블록의 리턴값을 리턴하므로 main 함수의 num에는 30이 들어가게 된다.
▶ Run
호출방법 1. 그냥 호출
var num1 =run{
1+2
}
println(num1)//3
run{
var a =10
println(a) //10
}
호출방법 2. 객체에서 호출
- 자신을 호출하는 객체를 this 처럼 사용할 수 있다
class RunTestClass {
var number = 10
fun sum(a: Int, b: Int): Int {
return a + b
}
}
//main
var testObj = RunTestClass()
var num2 = testObj.run{
number += 20
sum(number,20)
}
println(num2) //50
'Kotlin' 카테고리의 다른 글
[Kotlin] 목록에서 랜덤으로 1개만 가져오기 (response : objectDTO) (0) | 2022.11.22 |
---|---|
[Kotlin] 데이터클래스 / 컬렉션 (0) | 2022.11.14 |
[Kotlin] 예외처리 / 람다 / 클래스 (0) | 2022.11.14 |
[Kotlin] 조건문 / 반복문 (0) | 2022.11.14 |
[Kotlin] 함수 / 변수 / 자료형 / 배열 (0) | 2022.10.24 |