rxjava2
依赖性和rxkotlin
依赖性之间有什么区别。
如果我使用的是rxkotlin
依赖项,是否还需要添加rxjava2
依赖项。
implementation 'io.reactivex.rxjava2:rxkotlin:x.y.z'
// do i need to add the below dependencies also?
implementation 'io.reactivex.rxjava2:rxjava:2.2.4'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
答案 0 :(得分:5)
事情是RX代表Reactive Extensions,而Rx Java代表 Rx Kotlin或Rx Swift都是Reactive的实现 该特定语言的扩展名。
什么是RxJAVA? RxJava是Reactive Extensions的Java VM实现。在这里我们可以在任何线程上创建异步数据流,对其进行转换,并且这些异步数据流可以由观察者在任何线程上使用。
什么是RxKotlin? RxKotlin是Reactive Extensions的Kotlin实现。
什么是RxAndroid? 它特定于Android平台,并在RxJava之上添加了更多类。
有关更多详细信息,请访问我的rxjava简单示例https://github.com/myJarvis/Intro_to_RxJava集合。
为了更加明确,RxKotlin具有Kotlin随附的一些方便的扩展功能。
您可以使用{RxJava&RxAndroid}或{RxKotlin}
您可以将RxJava与现成的Kotlin一起使用
答案 1 :(得分:3)
正如您在https://mvnrepository.com/artifact/io.reactivex.rxjava2/rxkotlin/2.3.0所看到的,# determine the nodes that have at least the minimum freq
nodes_d3_min_freq <-
nodes_d3 %>%
filter(freq >= input$nos)
# filter the edge list to contain only links to or from the nodes that have
# the minimum or more freq
edges_d3_filtered <-
edges_d3 %>%
filter(from %in% nodes_d3_min_freq$id | to %in% nodes_d3_filtered$id)
# filter the nodes list to contain only nodes that are in or are linked to
# nodes in the filtered edge list
nodes_d3_filtered <-
nodes_d3 %>%
filter(id %in% unlist(select(edges_d3_filtered, from, to)))
# re-adjust the from and to values to reflect the new positions of nodes in
# the filtered nodes list
edges_d3_filtered$from <- match(edges_d3_filtered$from, nodes_d3_filtered$id) - 1
edges_d3_filtered$to <- match(edges_d3_filtered$to, nodes_d3_filtered$id) - 1
forceNetwork(Links = edges_d3_filtered, Nodes = nodes_d3_filtered,
Source = "from", Target = "to", NodeID = "label",
Group = "id", Value = "value", opacity = 1, fontSize = 20,
zoom = TRUE, Nodesize = "peso", arrows = TRUE)
取决于rxkotlin
。因此,除非您专门排除它,否则它会自动添加为transitive dependency。
不出所料,rxjava
并不依赖于rxkotlin
,因此如果要使用它,确实需要添加它。 rxandroid
和rxandroid
都使用相同的rxkotlin
类型,因此它们可以自由互操作。
答案 2 :(得分:2)
由于Kotlin与Java具有100%的互操作性,因此您可以毫无困难地在Kotlin项目中使用大多数Java库-RxJava库也不例外。
有一个专用的RxKotlin library,它是常规RxJava库的Kotlin包装器。该包装器提供了扩展程序,这些扩展程序针对Kotlin环境优化了RxJava,并可以进一步减少您需要编写的样板代码。
如果您使用的是rxkotlin
,则只需添加以下行
implementation 'io.reactivex:rxkotlin:x.y.z'
,如果要使用rxjava2
,则需要包括其他依赖项,即
implementation 'io.reactivex.rxjava2:rxjava:2.2.4'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
但是如果您使用Kotlin作为编程语言,我建议您使用rxkotlin
更多详细信息,请参见this link
答案 3 :(得分:0)
此Android开发中的主要库为 RxJava 。由于 Kotlin 可与Java库完全互操作,因此 RxKotlin 只是原始 RxJava 的一个薄包装。