Bir XML dosyası okuyan kodum var. İhtiyacım olan öğelerin özelliklerinin bazıları isteğe bağlıdır. Onları yönetmek için Option [T] kullanmaya çalışıyorum. Scala'da isteğe bağlı xml öznitelikleri işleniyor
(node \ "@attr").textOption.getOrElse("Some default value")
düğüm "attr" özniteliği varsa
, bu kodu: sonraclass NodeSeqWrapper(nodeSeq: NodeSeq) {
def textOption: Option[String] = {
val text = nodeSeq.text
if (text == null || text.length == 0) None else Some(text)
}
}
implicit def nodeSeqWrapper(nodeSeq: NodeSeq): NodeSeqWrapper =
new NodeSeqWrapper(nodeSeq)
ve böyle diyoruz: Ben \
Düğüm operatör tarafından döndürülen NodeSeq tipini pezevenk için aşağıdaki yazdım değeri alır. Eğer değilse, "Bazı varsayılan değerler" değeri döndürülür.
Bunu nasıl geliştirebilirim? Sınıf tanımını örtülü yönteme katlamanın bir yolu var mı? "İsteğe bağlı" özellik değerlerini almanın daha iyi bir yolu var mı? Option[T]
"doğru" kullanıyorum mı?
"textOption" yönteminizi, "Seq" sinin "head" ve "headOption" yöntemleriyle aynı şekilde çağırmak isteyebilirsiniz. –
Kulağa hoş geliyor. Kodumu değiştireceğim. Ayrıca soru güncelleniyor. – Ralph