私は通常します
value = input || "default"
したがって、input=nilの場合
value = "default"
しかし、どうすればこれを行うことができますか?代わりにnil
、空の文字列''
を次のようにカウントしますnil
私がそうするなら私はしたい
input = ''
value = input || "default"
=> "default"
なしでこれを行うためのシンプルでエレガントな方法はありif
ますか?
私は通常します
value = input || "default"
したがって、input=nilの場合
value = "default"
しかし、どうすればこれを行うことができますか?代わりにnil
、空の文字列''
を次のようにカウントしますnil
私がそうするなら私はしたい
input = ''
value = input || "default"
=> "default"
なしでこれを行うためのシンプルでエレガントな方法はありif
ますか?
Railsは、必要なことを正確に実行するすべてのオブジェクトにプレゼンスメソッドを追加します
input = ''
value = input.presence || "default"
=> "default"
input = 'value'
value = input.presence || "default"
=> "value"
input = nil
value = input.presence || "default"
=> "default"
私は通常このようにします:
value = input.blank? ? "default" : input
入力が定義されていない可能性がある場合に応じて、次の方法で入力を保護できます。
value = input || (input.blank? ? "default" : input)
# I just tried that the parentheses are required, or else its return is incorrect
純粋なルビー(Railsに依存しない)の場合、次empty?
のように使用できます。
value = input || (input.empty? ? "default" : input)
またはこのように(これを提供してくれてありがとう@substantial):
value = (input ||= "").empty? ? "default" : input
多分無関係ですが、私はこのようなハイラインを使用します:
require "highline/import"
input = ask('Input: ') { |q| q.default = "default" }
Railsなしで動作します。本当にきちんとした解決策。