puts "Hi"
=> "Hi"
次のように言うことができるように、このコードからリターンを取得する方法はありますか?
x = puts "Hi"
プットの結果はゼロです。からのリターンを得ることに特に興味があり%x()
ますが、同じ概念が適用されるようですputs
カスタム関数を書きたくない場合の簡単な解決策は、 を使用することtap
です。これは、次のように定義されたきちんとした小さな組み込みメソッドです。
class Object
def tap
yield self
self
end
end
新しく作成されたオブジェクトの操作を実行するのに特に役立ちます。これはまさにあなたが扱っているものです。この場合の使用方法は次のとおりです。
x = "Hi".tap {|obj| puts obj}
これを何度も行う必要があるときは、オブジェクトを静かに出力する「see」と呼ぶのが好きな、些細なカスタム メソッドを使用します。
class Object
def see
puts self
self
end
end
その結果
x = "Hi".see
編集: に関する私の大雑把な知識に基づいて%x
、システム コマンドのソースを取得し、それを 1 つのアクションで実行することが必要だと思います。この場合、文字列として表す必要があります。
x = "destroy -device printer -reason rage".tap {|cmnd| %x{#{cmnd}}} # actually destroys printer
puts x # outputs "destroy -device printer -reason rage"
私は単に行うだろう:
p x="hi"
デバッグを削除したい場合は、2 文字だけ削除してください。