Techioz Blog

空の文字列をその場で nil に変換しますか?

概要

Rubyを使用して空の文字列をnilに変換する方法を探しています。空のスペースの文字列ができた場合は、次のようにすることができます

 "    ".strip!

これにより、空の文字列「」が得られます。

私ができるようになりたいのはこのようなことです。

"    ".strip!.to_nil!

それ以外の場合、文字列が空でない場合、文字列は変更されません。これにより、空の文字列が nil に置き換えられます。 to_nil!文字列が .empty の場合、文字列を直接 nil に変更しますか?

ここで重要なのは、次のような割り当てを通じてではなく、直接それを実行したいということです。

f = nil if f.strip!.empty?

解決策

クリーンな方法は、プレゼンスを使用することです。

テストしてみましょう。

'    '.presence
# => nil


''.presence
# => nil


'text'.presence
# => "text"


nil.presence
# => nil


[].presence
# => nil


{}.presence
# => nil

true.presence
# => true

false.presence
# => nil

このメソッドは Ruby on Rails v4.2.7 のものであることに注意してください。 https://translate.google.com/translate?hl=ja&sl=en&tl=ja&u=https://apidock.com/rails/Object/presence