2

findAPIの多くはRubyと同じなので最初に探しましたが、見つかりませんfindでした。したがって、次善の策はselect+だと思いましたfirst(私の配列は非常に小さいので、これで問題ありません)。

Crystal API select!for an Array を見ると、Ruby と同じようにブロックが必要です。select!受信配列を変更しているように見えますが、ありませんselect(少なくとも確認できます!)。

これは私のコードです:

segment = text.split(' ').select! { |segment| segment.include?("rm_") }.first

エラーは次のとおりです。

segment = text.split(' ').select! { |segment| segment.include?("rm_") }.first
                                     ^~~~~~~
4

1 に答える 1

5

Enumerable#findとの両方Enumerable#selectが存在し、Enumerableで文書化されています。

したがって、次のようなものは、Ruby からわかるように機能します。

segment = text.split(' ').find &.includes?("rm_")

正規表現を使用して中間配列を節約することもできます。

segment = text[/rm_[^ ]+/]

また、サンプル コードで を置き換えるinclude?includes?、実際にも機能します。

于 2015-07-29T21:18:57.243 に答える