teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2019/07/07 02:20

投稿

asm
asm

スコア15149

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  まず、「意図しない動作」ではありますが、「エラー」ではありません。
2
2
 
3
3
  Rubyのメソッド呼び出しの`()`省略時に`do end`でブロック付きで呼び出そうとすると
4
- 優先度の問題から、このような意図しない動作を引き起こします。
4
+ このような意図しない動作を引き起こします。
5
5
 
6
6
  今回の場合は、Rubyは↓のように解釈しています。
7
7
  ```ruby
@@ -10,4 +10,5 @@
10
10
  end
11
11
  ```
12
12
 
13
- なお、`{}`によるブロック付き呼び出しはこの問題はりません。
13
+ なお、`{}`によるブロック付き呼び出しは、`do end`より強く結合しているためこの問題はおこりません。
14
+ [参考:ブロック付きメソッド呼び出し](https://docs.ruby-lang.org/ja/2.6.0/doc/spec=2fcall.html#block)