성장, 그 아름다운 향연
article thumbnail

gradle 기준 

"io.reactivex.rxjava2:rxjava:2.2.21"

 


Rxjava를 코틀린으로 변경해보며 학습하던 중에 Observable의 fromArray를 실습했다.

java에서는 배열을 인자로 넣었을 때 각각의 요소에 접근할 수 있었지만,

kotlin에서는 주소값으로 전달되어 오류가 발생했다.

 

 

이를 해결하기 위해 인터넷 검색을 해보았고 많은 개발자들은 fromArray 대신 fromIterable을 사용하기를 권장했다.

그래서 kotlin에서는 fromArray를 사용할 수 없는거구나라고 생각하고 번거롭지만 Collection인 list와 같은 구조를 이용했었다.

 

그러던 중에 갑자기 C언어에서 배웠던 포인터(*) 개념이 문득 떠올랐다. 그래서 혹시나 하는 마음에 인자에다가 *을 첨부해봤다. 된다!!!!!!!!!!! 되는건 알겠지만 이유를 모르겠다. 아무리 검색해봤지만 방법은 나타나지 않았다. 만약에 원인을 발견한다면 추가적으로 덧붙일 것이다.

 

 

fromArray 예시

val balls = arrayOf("1","3","5")
    
    val source = Observable.fromArray(*balls)
        .scan { ball1: String, ball2: String ->
            "$ball2($ball1)"
        }
    source.subscribe(::println).dispose()

 

 

잘 출력된 결과물

 

profile

성장, 그 아름다운 향연

@dev_minoflower

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...