為何不能將“kotlin.Result”用作返回型別?
Result 是 Kotlin 中的一個可序列化類。它的函式定義如下 −
class Result<out T> : Serializable
此類有兩個屬性 − “isFailure” 和 “isSuccess”。
根據文件說明,Result<T> 不能用作 Kotlin 函式的直接返回型別。但是,在本文中,我們將演示如何在 Kotlin 程式中使用這個 Result。
// ERROR: 'kotlin.Result' cannot be used as a return type fun findUserByName(name: String): Result<User> fun foo(): Result<List<Int>> // ERROR fun foo(): Result<Int>? // ERROR var foo: Result<Int> // ERROR
示例 – Kotlin.Result
sealed class myInterFace<out Success, out Failure>
data class Success<out Success>(val value: Success) : myInterFace<Success, Nothing>()
data class Failure<out Failure>(val reason: Failure) : myInterFace<Nothing, Failure>()
fun myMethod(string : String) : myInterFace<String, Exception> {
return if (string.isEmpty()) {
Failure(Exception("Error in the process"))
} else {
Success(string)
}
}
fun main(args : Array<String>) {
when(val result = myMethod("")) {
is Success -> println(result.value)
is Failure -> println(result.reason)
}
}輸出
執行後,將產生以下輸出 −
java.lang.Exception: Error in the process
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP