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

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

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

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

Q&A

4回答

1919閲覧

Ruby ブロックの基本について

huang_2014

総合スコア34

Ruby

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

0グッド

0クリップ

投稿2014/11/19 14:45

Ruby初心者です。
ブロックというのがどうもわからず困っています。
基本で躓いてしまっているのですが、
どなたかわかりやすく、どういったものかを教えてください。

また、使用例も教えてくれたらありがたいです。
よろしくお願いします。

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

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

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

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

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

guest

回答4

0

ruby のブロックの解説記事を一つ紹介します。

ここ teratail でも block に関する質問は何回もでています。
https://teratail.com/questions/search?q=ruby+%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF
それらにも目を通してみることをおすすめします。

投稿2014/11/20 15:48

katoy

総合スコア22324

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

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

0

ブロックというのは以下のようなプログラムのdo-endで囲まれたものを指します。

lang

1# Hello を2回表示する 22.times do 3 puts "Hello" 4end

lang

1# ファイルの中身を表示する 2File.open('path/to/file.txt', 'r') do |f| 3 puts f.read 4end

ですが、普通のプログラミングでは「ブロック」そのものについて考えることはほとんどありません。

  • timesは、do-endの中身がその回数だけ実行される
  • File.openば、ファイルの読み込みはdo-endの中でやらないといけない

というように覚えれば十分です。

手元の教科書にはBlockやらProcやらlambdaやらyieldやらに触れているかもしれません。
しかしそれらの詳細は中級以上でないと知る必要がない上に、中級を超えるころには自然と理解しているはずです。

投稿2014/11/20 13:00

hello-world

総合スコア1342

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

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

0

入門書を一通り読んでも、ブロックの部分が理解できないという前提でのアドバイスです。
Ruby以外にも全くプログラミング言語を知らないのか、別のプログラミング言語を知っているのか?
他に知っているなら、その言語を例に使って説明することも出来ます。
全くプログラミングを知らないにしても、Rubyをどこまでわかっているのか?
そのあたりがわからずに説明しても、きっとまたあなたにわからない(入門書並みの)説明しか出来ないと思います。

そうじゃなくて、入門書を読んでないなら、まずは入門書を通読しましょう。

投稿2014/11/20 11:00

otn

総合スコア84538

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

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

0

ブロックを簡単に説明します。
for,if,whileなどは、スコープが作成されないのですが、
ブロックを使えば、新たにスコープを作成できます
またメソッドを呼び出すときのみ記述でき、メソッドの内部では、
yieldを使用することでブロック内部の処理を呼び出せるというものです。

使用例ですが、

lang

1def kannsuu f 2f + yield 3end 4 5p kannsuu(3) {4}

実行結果は7です。

この中で{}がブロックです。

投稿2014/11/20 07:30

kraken

総合スコア229

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問