Kutu ve Option monadlarının prevalansı ile bile, burada ve burada boş değerleri kontrol etmek zorundayız. Şimdiye kadar geldiğim en iyisi Box # !! yöntemi:Boş çekleri Scala/Lift içinden nasıl işleyebilirim?
(Box !! possiblyNull).map(_.toString).openOr("")
Bunu yapmanın daha iyi bir yolu var mı? Ben Box'ın uygulamak yöntemiyle çalıştı:
Box(possiblyNull).map(_.toString).openOr("")
Fakat derleyici bir Aşırı yüklü tanımına belirsiz bir referans şikayet spesifik olarak:
[InType,OutType](value: InType)
(pf: PartialFunction[InType,OutType])net.liftweb.common.Box[OutType]
Bunu oluyor neden emin değilim, ama orada umuyordum "Bu dizgenin değerini ver, ya da sadece" "demenin daha kısa, daha özlü bir yolu olurdu. Ben tryo kullanmayı düşündüm, ama kaçınılması gerektiğinde bir istisna ile uğraşmak için israf ettiğini düşündüm.
Vay, bu daha kolay .. teşekkürler. Ayrıca, Box, Lift çerçevesinin Option'u yeniden hızlandırmasıdır. Option'un iki alt sınıfı yerine üçü vardır: Tam, Boş ve Arıza. – Collin
Bu kulağa benzer bir http://www.scala-lang.org/archives/downloads/distrib/files/nightly/docs/library/scala/Either.html – pedrofurla