Kotlin многострочное объявление строки со знаком плюс - PullRequest
1 голос
/ 19 марта 2020

Мы можем объявить строку в Java, как показано ниже:

String selection = MediaStore.Files.FileColumns.MEDIA_TYPE
                + "=" + MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE.toString();

Но когда я пытаюсь объявить аналогичную вещь в kotlin, как показано ниже, она показывает ошибку «Неразрешенная ссылка +» в android студия.

val selection = MediaStore.Files.FileColumns.MEDIA_TYPE
                + "=" + MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE.toString()

Однако, если я объявлю это в одной строке, он будет работать нормально. Но поскольку код не выглядит хорошо при добавлении такого большого кода в одну строку, каков способ kotlin объявления строки в несколько строк со знаком плюс (+)?

Ответы [ 2 ]

4 голосов
/ 19 марта 2020

, когда я пытаюсь объявить аналогичную вещь в kotlin, как показано ниже, в android studio отображается ошибка "Unresolved reference +".

Вместо

val selection = MediaStore.Files.FileColumns.MEDIA_TYPE
                + "=" + MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE.toString()

Попробуйте переместить знак + на первую строку.

val selection = MediaStore.Files.FileColumns.MEDIA_TYPE +
            "=" + MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE.toString()

, так как код не выглядит хорошо при добавлении такого большого кода в одну строку. kotlin способ объявления строки в несколько строк со знаком плюс (+)?

Вы можете попробовать метод plus

val selection = MediaStore.Files.FileColumns.MEDIA_TYPE
    .plus("=")
    .plus(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE)

или используя String.format метод

val selection = String.format(
    "%s=%s",
    MediaStore.Files.FileColumns.MEDIA_TYPE,
    MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE
)
1 голос
/ 19 марта 2020

В дополнение к ответу @ theapache64, Kotlin имеет формат $.

val mediaType = MediaStore.Files.FileColumns.MEDIA_TYPE
val mediaImage = MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE

val selection = "$mediaType=$mediaImage"

, если вы хотите использовать выражение внутри $, используйте ${ } вот так

val selection = "${MediaStore.Files.FileColumns.MEDIA_TYPE}=${MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...