簡體   English   中英

帶加號的 Kotlin 多行字符串聲明

[英]Kotlin multiline string declaration with plus sign

我們可以像下面這樣在 Java 中聲明字符串:

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

但是當我嘗試在 kotlin 中聲明類似的東西時,如下所示,它在 android studio 中顯示錯誤“未解析的引用 +”。

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

但是,如果我在一行中聲明它,它就可以正常工作。 但是由於在一行中添加如此大的代碼時代碼看起來不太好,那么kotlin 用加號(+)符號在多行中聲明字符串的方式是什么?

當我嘗試在 kotlin 中聲明類似的東西時,如下所示,它在 android studio 中顯示錯誤“未解析的引用 +”。

代替

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
)

除了@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}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM