gpt4 book ai didi

kotlin - 为什么Rx会打印整个数组而不是每个项目

转载 作者:行者123 更新时间:2023-12-02 13:12:56 26 4
gpt4 key购买 nike

我有以下代码:

 val places: Array<String> = arrayOf("Singapore", "Japan", "Norway") // From an Array - Output will be elements of the array
val observable = Observable.fromArray(places)


var result = "Hello, "

observable.subscribe(
{ item ->
result += item
},
{ error ->
error.printStackTrace()
},
{
println("Done")
}
)

print(result)
}

我希望它能打印您好,新加坡|您好,日本|你好,挪威

但是我得到:
Hello, [[Ljava.lang.String;@3830f1c0]

我要按顺序从数组中打印元素时缺少什么

最佳答案

Observable.fromArray fromIterable有点不同。它不需要实际的数组,但是需要vararg参数。这是它的签名:

public static <T> Observable<T> fromArray(T... items)

因此,像这样调用它实际上将为您提供一个包含单个元素的 Observable,并且其类型将为 Observable<Array<String>>:
val places: Array<String> = arrayOf("Singapore", "Japan", "Norway")
val observable: Observable<Array<String>> = Observable.fromArray(places)

您正在寻找的 Observable<String>可以这样创建:
val observable: Observable<String> = Observable.fromArray("Singapore", "Japan", "Norway")

或者,如果您已有数组,请使用 spread operator:
val places: Array<String> = arrayOf("Singapore", "Japan", "Norway")
val observable: Observable<String> = Observable.fromArray(*places)

关于kotlin - 为什么Rx会打印整个数组而不是每个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55178372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com