Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{ } を使ったときの引数有ブロックのスタイル #2

Open
takkanm opened this issue Mar 14, 2016 · 2 comments
Open

{ } を使ったときの引数有ブロックのスタイル #2

takkanm opened this issue Mar 14, 2016 · 2 comments

Comments

@takkanm
Copy link
Contributor

takkanm commented Mar 14, 2016

今の ESM Ruby Style Guideだと {| の間にスペースをいれない。

[].map {|i| i }

ESM Ruby Style Guide だと

 無名関数様をハッシュみたいな見た目にするのは失礼に当たる

@hidenba いわく

do ... end の場合は ブロックパラメータの前後に空白入るからブレースの時も空白入れるようにしてる

@koic いわく

俺もそうしていたけれど、 { と |o| の間の空白は横に間延びした感 (あるいはブロック引数の浮いてしまっている感) 
があって冗長なので、今は do ... end と別に考えるようにしている。
つまりこの場合は例示のように {|o| として空白は入れない。
@koic
Copy link
Member

koic commented Mar 14, 2016

転載ありがとう。補足です。

ブロックが手続きを表現しているなら do ... end を使う。ブロックが式を表現しているなら { ... } を使う。

なので do ... end{ ... } は別に考えています。

@kakutani
Copy link
Member

kakutani commented Jun 3, 2016

[IMO]

{|のあいだにはスペース入れない派だったけど、チームの規約のときにそこ頑張るところかな…と思いはじめたので、

nums = (0..10).map { |i| i * 2 }
File.open('/tmp/nums.txt', 'w') do |f| f.write(nums) end

でいいんじゃないかなと思うようになった(人間、慣れるものですね)。
手続きが1行のときに:

File.open('/tmp/nums.txt', 'w') do|f| f.write(nums) end
File.open('/tmp/nums.txt', 'w') do|f| f.write(nums)end

とは書かないし、--auto-correct効くからこれでいっかー 😩 という。

戻り値を使うのか、手続きの表現なのかで使い分けることと、
記述を書き分ける、っていうのは別の話だと思うので、書き方としては揃えちゃっていいんじゃないかしら。効用としては:

  • 設定よりも規約(rubocopのデフォルト)
  • 説明が簡潔(@hidenba と同じ説明)

あくまで標準としての説明のし易さ、ってことなのでチームで合意の上で別の設定にすることは誰にも止められない。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants