Wie konvertiert man ein Some ("") zu None in einer Zeile?

8

Ich möchte eine Funktion definieren:

%Vor%

Wenn x ist Some(str) und str nach dem Trimmen leer ist, wird es in eine None konvertiert, andernfalls ist es ein Some mit beschnittener Zeichenkette.

Der Testfall lautet also:

%Vor%

Ich kann es schreiben als:

%Vor%

Aber ich hoffe, eine einfachere Implementierung (einzeilige) zu finden.

    
Freewind 05.03.2012, 15:18
quelle

3 Antworten

15

Was ist damit?

%Vor%

UPDATE: Alternative Syntaxen vorgeschlagen von @JamesMoore und @PeterSchmitz :

%Vor%     
Tomasz Nurkiewicz 05.03.2012, 15:22
quelle
1

Und wie üblich gibt es auch die für das Verständnis alternative Syntax (das ist eine Syntax Zucker für Filter und Karte)

%Vor%     
Antoine Comte 24.02.2014 07:37
quelle
1

def konvertieren (x: Option [String]) = x.filter (s = & gt; s.trim.nonEmpty)

    
Eric D 11.05.2016 14:32
quelle

Tags und Links