markdown ブロックとPROCについて

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown ブロックとPROCについて相关的知识,希望对你有一定的参考价值。

Rubyではメソッドを実行する時に引数としてブロック`do end`をつけて実行する関数がある。例えば`map`メソッドなど。  
例えばmapメソッドを作成しようと思ったら、引数として受け取ったメソッドを実行させる必要がある。
それが`yield`、もしくは`call`で呼ぶやり方だ。

### メソッドの定義

```ruby
def hoge(&block)
  # .callの場合
  if not block.nil?
    block.call "hogehoge"
  end

  # yieldの場合。
  if block_given?
    yield "hogehoge"
  end
end
```

### 実行

```ruby
hoge do |text|
  puts text
end
# -> hogehoge
```  


## Proc

またブロックとは`Proc`オブジェクトである。以下のようにしても同様の処理ができる

```ruby
# Proc.new
sample_proc = Proc.new do |text|
  puts text
end

# lambda
sample_lambda = -> (text) {
  puts text
}

hoge &sample_proc
hoge &sample_lambda
```

以上是关于markdown ブロックとPROCについて的主要内容,如果未能解决你的问题,请参考以下文章

markdown 树莓派について

markdown pytorchについての情报

markdown Terraformについて调べた

markdown 对于ループの挙动について

markdown 亚马逊网络服务について调べた结果

ruby ブロックを处理する关数を书く