タグ

rubyとnilに関するkiyo_hikoのブックマーク (3)

  • Ruby でも Optional Chaining がしたいんじゃ〜! - Qiita

    もう type = database.first ? database.first.type : nil とかみたいに書くのはつかれたお……。 Swift みたいに type = database.first?.type って書きたいお……。 というわけでなるべくお手軽に実装。 (NilClass で method_missing して nil を返すと Swift の実装に近づくが、確実にデバッグで死ぬのでおすすめしない) 2015/12/09 追記。 Ruby 2.3.0 から safe navigation operator が実装されましたね。(参考) class Object def _? self end end class NilClass class Ghost < BasicObject def method_missing(*argv) nil end end def

    Ruby でも Optional Chaining がしたいんじゃ〜! - Qiita
    kiyo_hiko
    kiyo_hiko 2016/03/11
    "Ruby 2.3.0 から safe navigation operator が実装されました" とてもよさそう
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
  • nil や false でも遅延初期化したい! - Qiita

    今 リファクタリング:Rubyエディション の輪読会をやっているんですが、 日こので知った小ネタをメモしておきます。 Ruby でインスタンス変数を遅延初期化するときには、 ||= というイディオムをよく使いますよね。 ここでの遅延初期化とは initialize (コンストラクタ) で事前にインスタンス変数を初期化しておくのではなく、 インスタンス変数に初めてアクセスする際に初期化することです。 class SoulGem def clearness @clearness ||= 100 end def get_polluted @clearness = clearness - 1 end end 初回のアクセスでインスタンス変数に値が代入され、以降のアクセスでは既に代入された値が返されます。 ただし代入された値が nil や false (すなわち偽) の場合は、毎回右辺の値が代入

    nil や false でも遅延初期化したい! - Qiita
    kiyo_hiko
    kiyo_hiko 2015/09/13
    Object#instance_variable_defined?
  • 1