android – Rx Kotlin:map函数无法推断返回类型

android – Rx Kotlin:map函数无法推断返回类型,第1张

概述在连接到蓝牙设备的应用程序中,我使用以下函数使用RxKotlin: private fun startBluetoothPair(device: BluetoothDevice) { Observable.just(device) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainT 在连接到蓝牙设备的应用程序中,我使用以下函数使用RxKotlin:

private fun startBluetoothPair(device: BluetoothDevice) {    Observable.just(device)        .subscribeOn(Schedulers.io())        .observeOn(AndroIDSchedulers.mainThread())        .map {            var uuID: UUID = BLUetoOTH_UUID            var socket = it.createRfcommSocketToServiceRecord(uuID)            socket.connect()            return socket        }        .subscribe {            // Do something with the BluetoothSocket        }}

这个函数应该只是在背景上与蓝牙设备连接,然后对套接字做一些事情(再次在主线程中).但是,地图无法处理返回套接字部分,告诉我存在类型不匹配,它发现了一个需要单元的BluetoothSocket.

这里出了什么问题?我认为地图应该能够推断出返回类型.

解决方法 在map函数中替换该语句

return socket

return@map socket

因为return语句通常用于返回顶级函数的值.对于lambda表达式和内联(嵌套)函数,请使用标签返回,即返回@ {method_name}.您也可以将最后一行留给socket中的socket,编译器将为您处理它,假设最后一行是内联函数的返回值.但为了更好的可读性,我肯定更喜欢合格的返回语法.您可以在kotlin文档here和here中阅读更多详细信息

总结

以上是内存溢出为你收集整理的android – Rx Kotlin:map函数无法推断返回类型全部内容,希望文章能够帮你解决android – Rx Kotlin:map函数无法推断返回类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1123456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存