1. Null Safe
2. Scope Function (apply, with, let, also, run)
- Apply 함수 (주로 객체를 초기화할 때)
val person = Person().apply{
firstName = "Fast"
lastName = "Campus"
}
Person person = new Person();
person.fistName = "Fast";
person.lastName = "Campus";
- Alos 함수 (객체의 유효성을 확인하거나 프린트 함수로 디버깅할 때)
Random.nextInt(100).also{
print("getRandomInt() generated value $it")
}
Random.nextInt(100).also{ value ->
print("getRandomInt() generated value $value")
}
int value = Random().nextInt(100);
System.out.print(value);
- Let 함수 (객체에서 람다를 실행할 때)
val number: Int?
val sumNumberStr = number?.let{
"${sum(10,it)}"
}
Integer number = null;
String sumNumberStr = null;
if(number != null){
sumNumberStr = " " + sum(10, number);
}
val number: Int?
val sumNumberStr = number?.let{
"${sum(10, it)}"
}.orEmpty()
Integer number = null;
String sumNumberStr = null;
if(number != null){
sumNumberStr = " " + sum(10, number);
} else {
sumNumberStr = " ";
}
- With 함수
val person = Person()
with(person){
work()
sleep()
println(age)
}
Person person = new Person();
person.work();
person.sleep();
System.out.println(person.age);
- Run 함수
val result = service.run{
port = 8080
query()
}
service.port = 8080
Result result = service.query()
3. Data Class (데이터를 저장하는 목적으로 만든 클래스)
4. Lambda expression
button.setOnClickListener(new View.OnclickListener() {
@Override
public void onClick(View view){
,,,
}
})
button.setOnClickListener{ v ->
}
5. lateinit, lazy init
var nullableNumber: Int? = null
lateinit var lateinitNumber: Int
// 추후 초기화하는 코드
lateinitNumber = 10
// 사용할 때
nullableNumber?.add()
lateinitNumber.add()
val lazyzNumber :Int by lazy{
100
}
// 사용하기 전까지는 lazyNumber 라는 변수에 100 이 할당되지 않음.
lazyNumber.add()
// 사용할 때 100이 할당됨
'Android' 카테고리의 다른 글
[패스트캠퍼스] 코틀린 문법 훑어보기 (0) | 2023.01.02 |
---|---|
[Android] Handler (0) | 2021.09.02 |
[Android] CallBack (0) | 2021.06.08 |
[Android] 라이브러리 만들기 (0) | 2021.06.07 |
[JAVA] 싱글톤(Singleton) 패턴 (0) | 2021.04.11 |