我正在使用Kotlin插件的“ 1.2.60”版本。从文档中可以看出,分区应基于某些谓词拆分集合。但是,当我尝试它时,它的结果并没有成对出现。让我向您展示发生了什么以及我尝试过的事情:
val(found,notFound) = "abcd".partition { "abcdef".contains(it)}
我希望在这里我能找回科特林配对。第一个是“ abcd”,我希望第二个是“ ef” 我正在尝试做的是,如果任何字符不在一个字符串中,则应将其分开。因此,由于“ ef”不在“ abcd”中,因此应进行分区。
需要明确的是,我期望found = "abcd" , notFound = "ef"
但是当我运行此代码时,我得到以下信息:found="abcd" ,notFound=""
为什么notFound为空,我在做什么错?你们可以尝试一下并让我知道吗?
如果我们选中the docs,则表示该分区命令应按谓词进行分割:
将原始字符串拆分为成对的字符串,其中第一个字符串包含谓词为true的字符,而第二个字符串包含谓词为false的字符。
答案 0 :(得分:1)
您交换了参数。尝试
<xsl:when test='not (@Source = $targetFile)'>
您将获得预期的结果。
答案 1 :(得分:1)
该分区将应用于"abcd"
。因此,此字符串被分成一对。
"abcdef".contains(it)
是始终返回true的谓词。
因此,结果是found
的整个分区字符串,而notFound
的结果则没有。
对于提出Todd和leonardkraemer的解决方案,我不确定这是您所需要的。
例如:
val(found, notFound) = "abcdefa".partition { "abcd".contains(it) }
返回:
found = abcda
notFound = ef
这是您期望的吗?
答案 2 :(得分:1)
我认为您只是把弦向后倾斜。
我可以通过以下方式获得所需的结果:
val (found, notFound) = "abcdef".partition { "abcd".contains(it) }