unless (place =~ /^\./) == 0
Ich weiß, das ist wie if not
aber was ist mit der Condtional?Was macht dieser Rubin?
unless (place =~ /^\./) == 0
Ich weiß, das ist wie if not
aber was ist mit der Condtional?Was macht dieser Rubin?
Es prüft, ob die Zeichenfolge place
mit einem Punkt .
beginnt.
Bedenken Sie:
p ('.foo' =~ /^\./) == 0 # => true
p ('foo' =~ /^\./) == 0 # => false
In diesem Fall wäre es nicht notwendig sein == 0
zu verwenden. place =~ /^\./
würde als Bedingung genügen:
p '.foo' =~ /^\./ # => 0 # 0 evaluates to true in Ruby conditions
p 'foo' =~ /^\./ # => nil
EDIT: /^\./
ein regulärer Ausdruck ist. Die Anfangs- und Endstriche geben an, dass es ein regulärer Ausdruck ist, das wichtige Bit zu ^\.
zu verlassen. Das erste Zeichen ^
markiert "Start der Zeichenfolge/Zeile" und \.
ist Literal Zeichen .
, da das Punktzeichen normalerweise als ein Sonderzeichen in regulären Ausdrücken betrachtet wird. Weitere Informationen zu regulären Ausdrücken finden Sie unter Wikipedia oder auf der ausgezeichneten Website regular-expressions.info.
=~
bedeutet Streichhölzer regex
/^\./
ein regulärer Ausdruck ist:
/.../
sind die Trennzeichen für die regex
^
entspricht dem Anfang des Strings oder einer Zeile (\A
entspricht dem Beginn der nur die Zeichenkette)
\.
entspricht einem Literal.
Wie macht es das ... Was bedeutet = ~ /^\./ – Trace
http://perldoc.perl.org/perlre.html – SilverbackNet
'= ~' ist für den regulären Ausdruck passend .... '^'bedeutet Start der Zeichenkette ... und' \ .' ist für die Periode (was ein Sonderzeichen ist, daher muss es maskiert werden) .... der Ausdruck ist eingeschlossen in '/ /' –
st0le