Skip to content

Instantly share code, notes, and snippets.

@hyuki

hyuki/chat.md Secret

Created December 31, 2023 18:18
Show Gist options
  • Select an option

  • Save hyuki/38534e7eda49fc05d9c06c257418bdb8 to your computer and use it in GitHub Desktop.

Select an option

Save hyuki/38534e7eda49fc05d9c06c257418bdb8 to your computer and use it in GitHub Desktop.
#ChatGPT: Rubyで配列からnilを取り除く方法三選(compact, select, reject)

Rubyで配列からnilを取り除く方法三選(compact, select, reject)

ユーザー: Rubyでpost = [1,2,nil,4] のとき、 @posts = posts.select {|post| post}を実行すると@posts[1,2,4]が代入されます。このように配列からnil以外の要素を選び出す方法は上に書いた方法が普通の方法ですか。

アシスタント: はい、Rubyで配列からnil以外の要素を選び出すために、selectメソッドを使う方法は一般的です。@posts = posts.select {|post| post}というコードは、nilでないすべての要素を選び出して新しい配列を作成します。ただし、もっと簡潔な方法もありますので、いくつかご提案いたします。

  1. compactメソッド: これはnil要素を取り除くための最も簡単な方法です。

    @posts = posts.compact
  2. selectメソッド: ご質問にあった方法ですが、nil以外の要素を選び出します。

    @posts = posts.select {|post| post}
  3. rejectメソッド: nil要素を除外するために使うこともできます。

    @posts = posts.reject {|post| post.nil?}

どの方法を選ぶかは、ご自身の好みやコードの文脈によりますが、compactメソッドはこの特定の目的のために用意されているため、最も簡潔で読みやすい選択肢と言えるでしょう。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment