Skip to content

Commit

Permalink
Merge pull request #2488 from osyo-manga/add-warning-kernel_lambda
Browse files Browse the repository at this point in the history
Ruby 3.0 から lambda(&block) が非推奨になる説明を追加
  • Loading branch information
znz authored Mar 23, 2021
2 parents b77ca7e + 5f611c1 commit 06ae9ee
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion refm/api/src/_builtin/functions
Original file line number Diff line number Diff line change
Expand Up @@ -2451,15 +2451,31 @@ bind によらずに特定のオブジェクトのコンテキストで expr を

@raise ArgumentError スタック上にブロックがないのにブロックを省略した呼び出しを行ったときに発生します。
#@else

また、lambda に & 引数を渡すのは推奨されません。& 引数ではなくてブロック記法で記述する必要があります。

& 引数を渡した lambda は Warning[:deprecated] = true のときに警告メッセージ
「warning: lambda without a literal block is deprecated; use the proc without lambda instead」
を出力します。

@raise ArgumentError ブロックを省略した呼び出しを行ったときに発生します。
#@end

#@since 3.0.0
def foo &block
proc(&block)
end

it = foo{p 12}
it.call #=> 12
#@else
def foo &block
lambda(&block)
end

it = foo{p 12}
it.call #=> 12
#@end

@see [[c:Proc]],[[m:Proc.new]]

Expand Down

0 comments on commit 06ae9ee

Please sign in to comment.