Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – Rx Kotlin:map函数无法推断返回类型大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在连接到蓝牙设备的应用程序中,我使用以下函数使用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文档herehere中阅读更多详细信息

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。