plus/minus를 연산자 형식(a + b, a - b) 또는
일반적인 호출 형식(a.plus(b), a.minus(b))으로 사용하여 java.nio.file.Path를 Kotlin 컬렉션이나 시퀀스에 추가하거나 여기에서 제거하는 호출을 보고합니다.
java.nio.file.Path는 Iterable<Path>을 구현하므로,
이러한 호출은 plus 또는 minus 함수의 예상치 못한 오버로드로 해석되며,
이 함수는 요소의 컬렉션(이 경우, Path의 개별 요소들)을 가져옵니다. 그러나 코드의 의도는 아마도 개별 요소가 아닌, Path 자체를 추가하거나 제거하는 것입니다.
예:
// 연산자 형식
val paths = listOf(path) + somePath
val paths2 = setOf(path) - somePath
// 일반적인 호출 형식
val paths = listOf(path).plus(somePath)
val paths2 = setOf(path).minus(somePath)
빠른 수정:
plusElement/minusElement로 변환합니다(원래의 의도를 반영하여 의미를 변경).
val paths = listOf(path).plusElement(somePath)
val paths2 = setOf(path).minusElement(somePath)
Path 인수를 컬렉션으로 변환하여 의미를 변경하지 않고 의도를 명확히 합니다.
plus의 경우: 순서를 유지하기 위해 인수를 toList()로 감쌉니다.minus의 경우: 효율적인 제거를 위해 인수를 toSet()으로 감쌉니다.
val paths = listOf(path).plus(somePath.toList())
val paths2 = setOf(path).minus(somePath.toSet())