Serviceを読んで理解し、同意したものとみなします。filenameと書いているのですが、tryに近い形でfilenameがnilならnilを返し、StringであればFile.exist?の処理を行う定番の書き方はありますか?自分でメソッドを定義する必要があるのであれば現在の書き方を維持していこうと思っているのですがより良い書き方があるなら知りたく質問させていただきました。active_supportのような使えるメソッドをまとめて読み込む形の物も採用していこうと考えています。filenameは単独では(File.exist?の例外を利用するのでなければ)無意味なコードですが、実際にはどのように利用されているのでしょうか。File.exist?(filename)のような使い方をしています。nilでもStringでも存在チェックが実行できます。falseちなみにもし、true/false/nilの3種類を区別して返したい、という場合はその背景まで含めないと適切な回答がしにくいです。(何か特殊なことをやろうとしているのかもしれません)通常はfalse/nilはどちらも偽として扱われるので、わざわざ区別するのはレアケースだと思います。個の銅バッジ質問が不明瞭でしたね、すいません。nilとfalseを区別して返す必要はありません。.to_sで変えてしまえば良いことには気づきませんでした。ありがとうございます。|3かなり前の自分の質問への回答になるのですが今同じ処理を書くとするとfilename変数にPathnameを使い、filename.try(:exist?)とします。このページを見た人の参考になればと思い書いておきます。File.exist?(filename)と書きます。File.exist?(filename)とします。filename.to_s.empty?とかでしょうか。どちらにしても、多少冗長になってもfilenameのチェックをしているという意図を明白にする方を選びます。File.exist?(filename.to_s)やdo_something(filename.to_s)だと#to_sがnilよけであることメソッドが空文字を許容するかどうか(nilだった場合に空文字を渡すことは意図した動作なのか)がコード上明白でないので私なら避けます。逆に言えばそれらが明白である場面ならそう書くかもしれません。|1いろいろやりようがありそうです。どれにするかは好みによると思います。自分なら以下のどちらかでやります(多分最初の)。この辺の構文は結合法則がややこしかったりするので、結果を代入に使ったりするなら全体をカッコで括ったほうが確実です。nilなお質問の内容にもう少し合わせるならこういう感じでしょうか。異常時にfilenameがnilであることを期待できるならここまでする必要はありませんが。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。