List를 만들고 List에 들어있는 순서대로 코드를 진행하고싶을때 Java에서는 다음 index를 사용하기 위해 for문을 돌리거나 while문을 돌린다. koltin에서는 get/set 함수를 내부적으로 생성해주기 떄문에 따로 getter/setter를 만들 필요가 없다. property를 선언하는 기본문법은 다음과 같다.
1var <propertyName>[: <PropertyType>] [= <property_initializer>]2 [<getter>]3 [<setter>]
하지만 아까 언급했듯이 get/set은 기본적으로 생성되기 때문에 만들지 않아도 된다. 하지만 커스텀 접근자를 생성하여 다른 동작을 하게 할 수 있다.
1var stringRepresentation: String2 get() = this.toString()3 set(value) {4 setDataFromString(value) // parses the string and assigns values to other properties5 }
그래서 list를 만들어 순서대로 동작하게 하고 싶을때에 한동작을 완료하고 난후, 해당하는 동작을 list에서 제거하고 변수에 담아 그 변수를 set하면 자연스럽게 다음 동작으로 넘어가게 된다.
1private val sequenceList = mutableListOf(1,2,3,4,5)2
3fun main() {4 println("Hello, world!!!")5 println(sequenceList)6 nextStepTrigger()7 nextStepTrigger()8 nextStepTrigger()9 nextStepTrigger()10 nextStepTrigger()11}12
13private var provisioningStep: Int = 014 set(nextStep){15 field = nextStep16 println("nextStep= $nextStep")17 }18 19 fun nextStepTrigger(){20 if(sequenceList.isNotEmpty()){21 provisioningStep = sequenceList.removeAt(0)22 }23 }
이렇게 실행하게 되면 결과값은 이렇게 된다.
1[1, 2, 3, 4, 5]2nextStep= 13nextStep= 24nextStep= 35nextStep= 46nextStep= 5