ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코틀린 퀴즈 -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

     

    반응형
Designed by Tistory.