Kotlin/TIL

TIL (03.28)

내손은개발 🐾 2024. 3. 28. 21:12

CodeKata


 

 

[프로그래머스_Kotlin] 최댓값과 최솟값

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 문

rlawog.tistory.com

 

Scope funtions 사용하자!!

scope function는 Kotlin에서 객체 지향 프로그래밍을 단순화하고 코드를 더 읽기 쉽게 만드는 데 사용됩니다. 다양한 scope function가 있으며, 각각의 scope function는 객체의 범위(scope) 내에서 코드를 실행하는 방법을 제공합니다.

apply

수신 객체를 변경하지 않고 그대로 반환하며, 주로 객체 초기화 또는 설정할 때 사용됩니다. 블록 내에서 수신 객체의 속성에 접근하여 초기화할 수 있습니다.

data class Person(var name: String, var age: Int)

val person = Person("Alice", 30).apply {
    name = "Bob"
    age = 25
}
// person.name: "Bob"
// person.age: 25

 

also

수신 객체를 변경하지 않고 반환하며, 객체의 속성을 변경하는 대신 객체에 대한 작업을 수행하고 그 결과를 반환할 때 사용됩니다.

val person = Person("Alice", 30).also {
    println("Creating person: $it")
}
// Output: Creating person: Person(name=Alice, age=30)

 

let

수신 객체를 변경하지 않고, null이 아닌 경우에만 블록 내에서 수행할 작업을 정의할 때 사용됩니다.

val name: String? = "Alice"
name?.let {
    println("Name is $it")
}
// Output: Name is Alice

 

run

블록 내에서 수행된 결과를 반환하며, 객체의 메서드를 호출하거나 속성에 접근할 때 주로 사용됩니다.

val person = Person("Alice", 30)
val ageDescription = person.run {
    "This person is $age years old."
}
// ageDescription: "This person is 30 years old."

 

with

일반 함수처럼 사용되며, 주로 객체의 속성에 접근할 때 사용됩니다. 단일 객체에 대한 여러 동작을 수행할 때 유용합니다.

val person = Person("Alice", 30)
with(person) {
    println("Name: $name, Age: $age")
}
// Output: Name: Alice, Age: 30

 

 

 

Kotlin 문법


스프레드 연산자 (*) ?

스프레드 연산자는 배열이나 컬렉션의 요소를 풀어서 전달하는데 사용되는 연산자입니다. 이를 통해 여러 요소를 동시에 전달하거나 병합할 수 있습니다. 주로 함수 호출 시 인자로 배열이나 컬렉션의 요소를 전달하거나, 배열이나 컬렉션을 병합하는데 사용됩니다.

스프레드 연산자는 Kotlin에서 * 기호로 표현됩니다.

 

 

 

 

Android


  • 과제로 진행한 내용이긴 하지만 Stack과 Fragment 데이터 전달 방식에 대해 공부하였다.
    • 작성은 다 했지만 마무리가 안된 것 같아서 올리진 못하지만 새롭게 많이 배웠다.
    • 올리게 되면 TIL에 링크로 올릴 예정
  • 전에 등록했던 Firebase로 이메일 인증에 대해 다시 만들어 보았다.
  • Fragment bottomnavigation 공식문서를 다시 읽었고 똑같이 만들어보았다.

 

 

 

 

++


Fragment에서 Toast 메세지를 띄우려고 했는데 밑에 사진처럼 나온다.

원인 : Fragment에서는 Activity에서 사용하던 방식(?)으로 사용하면 동작하지 않는다고 한다.

context인자로 this를 주면 오류메시지 발생

해결 : toast는 context인자로 this가 아닌 getActivity()를 넘겨주어야 합니다. 나머지 length나 text사용법은 동일합니다.

 

Fragment에서 Toast, Button 사용 예제

Fragment에서는 Activity에서 사용하던 방식(?)으로 사용하면 동작하지 않습니다. context인자로 this를 주면 이런 오류메시지를 출력합니다. error: no suitable method found for makeText(,String,int) Toast Toast.makeText(

strawberry-smoothie.tistory.com

 

'Kotlin > TIL' 카테고리의 다른 글

TIL (04.01)  (0) 2024.04.01
TIL (03.29)  (2) 2024.03.29
TIL (03.27)  (1) 2024.03.27
TIL (03.26)  (0) 2024.03.26
TIL (03.25)  (1) 2024.03.25