2017-09-15 2 views
0

のリストに要素を追加すると、私のようにグルーヴィーコード内のリストがあるとします。はGroovyの

l = [1,2,3,4] 

私は以下のコードを使用するときに今、それはリストを変更:今すぐ

println(l<<5) 

私たちのリスト[1,2,3,4,5]

あるしかし、私はこのコードを使用していたとき:

println(l+[6]) 
をここで何が起こっている(それは最後に6で印刷さ除いて。)

何も リストに起こりませんが、リストには、[1,2,3,4,5]

と同じですか?助けてください。 おかげ

+6

'<<'はリストに項目を追加(元のリストを変更)し、 '+'は2つのリストから新しいリストを作成します(元のものを変更せずに) – UnholySheep

+0

@ UnholySheepの説明に加えて、GroovyDoc Listの '<<"(leftShift)はhttp://docs.groovy-lang.org/docs/latest/html/groovy-jdk/java/util/List.html#leftShift(java.lang.Object)です。 '+'(プラス)は次のとおりです:http://docs.groovy-lang.org/docs/latest/html/groovy-jdk/java/util/List.html#plus(java.lang.Iterable) – bdkosher

+0

@UnholySheep Soどのメソッドがリストを変更するのか、どのメソッドが変更しないのかはどのようにわかりますか?メソッドを使用する前に、ドキュメンテーションの時間を確認し続ける必要がありますか? – saurav

答えて

2

println(l<<5)l5を追加してからlを印刷しています。

println(l+[6])は(あなたの場合には、それだけで数6が含まれています)+の右側にあるリストの中にlプラス内容のすべての内容のすべてを持つリストを作成しています。その後、そのリストが印刷されます。それはlの値または状態を変更しません。