[英]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.