Kotlin - возврат списка пар - PullRequest
0 голосов
/ 30 марта 2020

В приложении Kotlin у меня есть этот метод:

fun <VALUE> metadataOf(vararg pairs: Pair<String, VALUE>) =
    MetaData.from(pairs.toMap())!!

, который я затем использую как:

 metadataOf(
   "sId" to message.sId,
   "userId" to message.userId
)

Я пытаюсь написать метод, который могу создать выше для меня из message - однако я не уверен, как вернуть список пар - это то, что я собрал на основе входного параметра из metadataOf(vararg pairs: Pair<String, VALUE>)

fun metadataFrom( message: CommandMessage<Any> ): Pair<String, Any> {
     return  (
        "sId" to message.sId,
        "userId" to message.userId
        )
}

1 Ответ

2 голосов
/ 30 марта 2020

У вас есть два варианта:

  1. Использование List:
fun metadataFrom(message: CommandMessage<Any>): List<Pair<String, Any>> = listOf(
  "sId" to message.sId,
  "userId" to message.userId
)

Вы можете использовать его следующим образом:

val result = metadataFrom(message)
metadataOf(*result.toTypedArray())
Использование Array:
fun metadataFrom(message: CommandMessage<Any>): Array<Pair<String, Any>> = arrayOf(
  "sId" to message.sId,
  "userId" to message.userId
)

Вы можете использовать его следующим образом:

val result = metadataFrom(message)
metadataOf(*result)

Второй более производительный, так как вы непосредственно создаете используемый массив в качестве ввода для metadataOf, но ничего заметного, если у вас нет большого количества данных. Так что выберите свой любимый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...