-
코틀린 퀴즈 -2 제네릭, 주생성자, 확장함수, 익명함수, 엘비스 연산자Client/Android 2020. 3. 12. 03:24
🔥 Problem 1
프로퍼티 1) dest 변수. 타입은 변경가능한 리스트. write 만 가능하다.
프로퍼티 2) src 변수. 타입은 변경 불가능한 리스트. read만 가능하다.
src로 받은 목록을 dest에 추가하는 append 제네릭 함수를 작성하라
open class Car { ... } class sedan : Car() { ... } class truck : Car() { ... }
val sedans : List<sedan> = ... val trucks : List<truck> = ... val cars : MutableList<Car> = ... append(cars, sedans) append(cars, trucks)
🔥 Problem 2
여기서 에러가 나는 코드는? (총 4줄)
val name : String val address : String = null val nullableString : String? val nonNullableString : String = "Foo" fun Address (a : String, b : String?, c : String) : String {...} fun Code (a : String) : PostalCode ? { ... } Address (null, null, "hello") val postal :PostalCode = Code("adsf adf f f f f")
🔥 Problem 3
Happy 타입이며 한 번 할당되면 값을 변경하지 못하는 smile 변수가 있다.
해당 변수에 findHappy("Let's have a laugh") findHappy함수 결과를 대입하려한다.
그런데 findHappy함수가 널 값을 반환하는 경우 Happy.None값을대입하는코드를 작성하라
🔥 Problem 4
Employee 라는 주생성자를 만든다.
프로퍼티가 두개가 있는데 하나는 String 타입이고 이름은 name, 하나는 널값이 될 수 있는 Employee 타입이고 이름은 manager 이다.
managerName 의 함수를 만드는데 이 함수는 Employee를 파라미터 값으로 갖고 반환값은해당 Employee의 manager의 name 이다. ( 확장함수 이용 ) -찬영
🔥 Problem 5
시연
🔥 Problem 6
EditText의 값을 Float 형태로 만들 때는 EditText.text.toString().toFloat()이라는 긴 코드를 통해 만들 수 있다.
하지만, 여러개의 EditText를 모두 Float 형태로 만들 때 쟤네들을 일일히 다 호출해주는 것은 불편하다.
이를 해결하여라. -시연🔥 Problem 7
시연
답
🍀 Solution 1
fun <T> append (dest : MutableList<in T>, src : List<out T>){ dest.addAll(src) }
🍀 Solution 2
1, 2 , 7, 8 줄 ERROR Code
val name : String
=> nonNullable. 즉, 초기화 해줘야 한다. val address : String = null
=> nonNullable. null을 대입할 수 없고 값을 대입해야한다.
Address (null, null, "hello")
=> 첫 번째 인자는 null 허용을 안했는데 null을 대입해서 오류 val postal : PostalCode = Code("adsf adf f f f f")
=> Code함수의 return 값이 nullable이다. 즉, null일 수 있다. 그렇다면 postal변수의 값도 nullable이여야 한다.
그러나 nonNuallable이기 때문에 불가능하다.
🍀 Solution 3
val smile : Happy = findHappy("Let's have a laugh") ?: Happy.None
🍀 Solution 4
🍀 Solution 5
🍀 Solution 6
fun EditText.convertFloat() { this.text.toString().toFloat() }
🍀 Solution 7
반응형'Client > Android' 카테고리의 다른 글
[Android] MVVM 패턴 적용해보며 배우기(1) - ACC, MVC와 MVVM비교, MVVM 장점 (2) 2020.04.07 코틀린 퀴즈 -3 확장함수,제네릭, 고차함수, 람다 (0) 2020.03.12 코틀린 퀴즈 -1 컬렉션, 생성자, 추상클래스, 인터페이스 (0) 2020.03.12 [Kotlin] 커니의 코틀린-(8) 코틀린 안드로이드 익스텐션 (0) 2020.03.11 [Kotlin] 커니의 코틀린-(4) 코틀린 표준 라이브러리 (0) 2020.03.11