Kotlin 中如何返回两个值?

Art*_*rov 4 return-value kotlin android-studio

我现在回国了liveDataName,但我也想回国liveDataImage

fun getProfileInfo(): LiveData<String> {

        val call: Call<UserProfile>? = NetworkService.getInstance()
                .jsonApi
                .getProfile()
        call?.enqueue(object : Callback<UserProfile>{
            override fun onResponse(call: Call<UserProfile>, response: Response<UserProfile>) {
                if (response.isSuccessful) {
                    response.body()?.let {
                        liveDataName.value = it.username
                        liveDataImage.value = it.defaultAvatar
                    }
                }

            }

            override fun onFailure(call: Call<UserProfile>, t: Throwable) {}
        })

        return liveDataName
    }
Run Code Online (Sandbox Code Playgroud)

ret*_*hab 6

您可以返回Pair

fun getProfileInfo(): Pair<LiveData<String>, LiveData<String>> {
  // ...
  return Pair(liveDataName, liveDataImage)
}
Run Code Online (Sandbox Code Playgroud)

  • 如果要返回三个值,则为 Triple: return Triple(liveDataName, liveDataImage, foo) (3认同)