質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

1438閲覧

ブロックパラメータに入った最初の要素を削除するには

MISOSHIRU

総合スコア31

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2016/12/11 07:18

編集2016/12/11 07:34

###前提・実現したいこと
Rubyの質問です。

ブロックパラメータに入った最初の要素を削除するには、どうしたら良いでしょうか?

###該当のソースコード

ruby

1#オブジェクト.メソッド名 do |ブロックパラメータ| 2# 3#end 4client = Slack.realtime 5 client.on :message do |data| 6 puts data 7end 8#リアルタイムでコメントがブロックパラメータに入り、putsされる 9#最初のコメントだけ削除したい

###前提
上記コード範囲外で削除は出来ない

###補足情報(言語/FW/ツール等のバージョンなど)
ruby 2.3.1p112

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

「ブロックパラメータに入った最初の要素を削除する」とはどういう意味でしょうか。

1番目の引数を使わないのであれば、

ruby

1オブジェクト.メソッド名 do |_, param1, param2| 2 3end

のようにして、「ロードはするけど無視する」というのがいちばん楽です(慣習上、このような場合はアンダーバー始まりの変数を使います)。

まったく別なことをしたいのであれば、その旨補足してください。

(補足に対応して)

原始的ですが、最初かどうかを判定して読み捨てる、のが確実だと思います。

ruby

1client = Slack.realtime 2first = true 3client.on :message do |data| 4 if first 5 first = false 6 next 7 end 8 puts data 9end

投稿2016/12/11 07:22

編集2016/12/11 07:40
maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MISOSHIRU

2016/12/11 07:34

迅速なご連絡ありがとうございます!! 補足致しました!!
MISOSHIRU

2016/12/11 07:49

できましたああああああああああああああ!!!!!!! ありがとうございましたああああああああああああああ!!!!!!
guest

0

「メソッド名」というメソッドが、ecahのようなもの(Enumerable)で、繰り返しの初回をスキップしたいと言うことなら、
オブジェクト.メソッド名.drop(1).each do |ブロックパラメータ|
もしくは、
オブジェクト.drop(1).メソッド名 do |ブロックパラメータ|
など、そのオブジェクトとメソッドに合わせてdrop(1)をどこかに挟む。

投稿2016/12/11 07:32

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MISOSHIRU

2016/12/11 07:42

迅速なご連絡ありがとうございます! 上記試してみましたが、できませんでした! エラーは出ませんでしたが、うまく挙動しません。
otn

2016/12/11 07:58

> 「メソッド名」というメソッドが、ecahのようなもの(Enumerable)で、繰り返しの初回をスキップしたいと言うことなら、 という回答の前提は正しいのでしょうか?
MISOSHIRU

2016/12/11 08:04

おそらく前提が違いました。お伝えしきれずすみませんm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問