私は現在 Ruby を学んでいますが、何をするかを理解できないようですif /start/../end
... 助けてください。
while gets
print if /start/../end/
end
私は現在 Ruby を学んでいますが、何をするかを理解できないようですif /start/../end
... 助けてください。
while gets
print if /start/../end/
end
あなたは Ruby を初めて使用すると言ったので、最初に、この例で正規表現 (regex) を扱っていることに注意してください。これは、2 つのスラッシュで区切られたものすべてです。
/start/ # a regular expression literal
正規表現は、より大きな文字列から特定の文字の組み合わせを照合する強力な方法です。
"To start means to begin." =~ /start/ #=> true, because 'start' is in the string.
二重ドット表記はフリップフロップ演算子であり、おそらく Perl から継承された物議を醸す構造であり、混乱を招く可能性があるため、通常は使用をお勧めしません。
これは次のことを意味します: 左側のオペランドが true になるまで、まとめて false に評価されます。その時点で、集合的に true と評価されます。ただし、右側のオペランドが true と評価されるまでのみ true のままになります。その時点で、集合的に再び false と評価されます。
したがって、上記の例を使用すると:
while gets
print if /start/../end/
end
これはフリップフロップ演算子と呼ばれます。詳しくは「Ruby フリップフロップ演算子」を参照してください。