Skip to content

Instantly share code, notes, and snippets.

@yudai
Created February 7, 2014 05:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yudai/8857785 to your computer and use it in GitHub Desktop.
Save yudai/8857785 to your computer and use it in GitHub Desktop.
which do you like?
#1
obj.method0(
arg1,
arg2)
.method1
.method2
#2
obj.method0(
arg1,
arg2).method1
.method2
#3
obj.method0(
arg1,
arg2
)
.method1
.method2
#4
obj.method0(
arg1,
arg2
).method1
.method2
@nsnt
Copy link

nsnt commented Feb 7, 2014

4択の中で1番近いのは#4です。

個人的には,

obj.method0(
  arg1,
  arg2,
).
  method1.
  method2

にします。

理由は次の行への継続が明確になるからです。
(Rubyは特定のパターンで次の行につながらなくてぜんぜん違う意味のコードになる場合があったように記憶してます)

もっとも,.method1.method2のchainが短ければ,普通に,

obj.method0(
  arg1,
  arg2,
).method1.method2

にします。

@satoyan
Copy link

satoyan commented Feb 7, 2014

この中からなら1かなー。

@nakaji-s
Copy link

nakaji-s commented Feb 7, 2014

nsntさんに同意

@kei-yamazaki
Copy link

おれは異端か。

obj.method0(arg1, arg2)
   .method1
   .method2

@knakaha
Copy link

knakaha commented Feb 7, 2014

私もこれ。

obj.method0(
  arg1,
  arg2,
).method1.method2

@yudai
Copy link
Author

yudai commented Feb 7, 2014

arg1, arg2, arg3が十分に長くて100文字超えてしまう場合はどうでしょう。
同じようにmethod1、method2も引数があって1行に並べるには長い場合です

@ikeda-y
Copy link

ikeda-y commented Feb 7, 2014

4の.method1と.method2がズレてるのは意図的なんでしょうか

私は#4のズレがない版

obj.method0(
  arg1,
  arg2
).method1
 .method2

がいいかな

@satoyan
Copy link

satoyan commented Feb 7, 2014

個人的にはjQuery使ってる時なんかは1と3を組み合わせた書き方をよくします。

obj.method0(
  arg1,
  arg2
)
.method1(
  xxx,
  yyy
)
.method2(
  xxx,
  yyy
)

@yuitsubasapapa
Copy link

どれかを、選択しなければいけないなら、#1かなぁ
でも、

obj.method0(
   arg1,
   arg2,
).
  method1.
  method2

は、意図がはっきりしていていいかも

@kokuboyuichi
Copy link

この中なら、#4で

@nsnt
Copy link

nsnt commented Feb 7, 2014

gofmtだと,行を長いまま放置しない場合は,

    obj.method0(
        longlonglonglonglognlonglonglonglongarg1,
        longlonglonglonglognlonglonglonglongarg2,
    ).
        longlonglonglonglognlonglonglonglongmethod1.
        longlonglonglonglognlonglonglonglongmethod2

が基本みたいです。
().longlonglonglonglognlonglonglonglongmethod1.とかは許されると思いますが)
ちなみに()内の2行目の最後の,は必須です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment