piszę następujące (z 2,10 Scala i Java 6):katalogu Delete rekurencyjnie w Scala
import java.io._
def delete(file: File) {
if (file.isDirectory)
Option(file.listFiles).map(_.toList).getOrElse(Nil).foreach(delete(_))
file.delete
}
Jak można ją poprawić? Kod wydaje się działać, ale ignoruje wartość zwracaną przez java.io.File.delete
. Czy można to łatwiejsze z scala.io
zamiast z java.io
?
Osobiście uważam, że dla Ułatwienia są znacznie łatwiejsze do odczytania: 'za (lista <- Option (file.listFiles()); dziecko <- lista) usuń (dziecko) ' –
Jaki jest sens stworzenia tej opcji i jej mapowania? Co jest nie tak z prostym "file.listFiles.foreach (delete)"? –
@ViliusNormantas 'listFiles' może zwrócić wartość' null', więc musisz sprawdzić ją dla 'null' lub owiń ją opcją' Option'. Ponadto prawdopodobnie trzeba rozróżnić b/w dwa przypadki: (1) 'listFiles' zwraca pustą tablicę i (2)' listFiles' zwraca null (wystąpił błąd we/wy) – Michael