我正在尝试在 Kotlin 中编写一个辅助方法,该方法将检查序列中的所有值是否具有相同的值。
\n感谢这里的提问
\nKotlin 中的 Java 风格代码使用Streams效果如下所示
fun <T> allEqual(vararg entries: T): Boolean {\n\n val reference = entries[0]\n return Arrays.stream(entries)\n .allMatch { entry: T -> reference == entry }\n}\nfun main(args: Array<String>) {\n println(allEqual("EUR", "USD", "USD", "EUR")) //returns false\n println(allEqual("USD", "USD", "USD", "USD")) //returns true\n}\nRun Code Online (Sandbox Code Playgroud)\nKotlin一直试图在使用中实现相同的目标sequences,而且我想保持这个辅助函数的通用性。
fun <T> isAllEqual(vararg entries: T) : Boolean {\n val reference = entries[0]\n println(reference)\n val isEqual: (Array<out T>) -> Boolean = { it == reference }\n val seq = listOf(entries).asSequence()\n return seq.all{isEqual}\n}\nfun main(args: Array<String>) {\n println(isAllEqual("USD", "USD", "USD", "USD"))\n}\nRun Code Online (Sandbox Code Playgroud)\n我看到以下错误Type mismatch. Required: (Array<out T>) \xe2\x86\x92 Boolean Found: (Array<out T>) \xe2\x86\x92 (Array<out T>) \xe2\x86\x92 Boolean
任何见解将不胜感激。谢谢。
\nfun <T> allEqual(vararg entries: T): Boolean = entries.all { it == entries[0] }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4177 次 |
| 最近记录: |