69. NTTソフト道場研修Grails/Groovy入門Copyright (C) 2015 NTT Software Corporation. All rights reserved. 69
リストリテラル
• 角括弧中にカンマ区切りで要素を並べる
def a = [1,2,3,”四”]
println a.class
• 空リスト
a = [ ]
• as演算子でSetに変換
def s = [1,2,3] as Set
println s.class
class java.util.ArrayList
class java.util.LinkedHashSet
71. NTTソフト道場研修Grails/Groovy入門Copyright (C) 2015 NTT Software Corporation. All rights reserved. 71
リストの全要素処理
List lst = [ 'a', 'b', 'c' ]
lst.each{
println it
}
lst.eachWithIndex{ it,idx ->
println "$idx: $it"
}
lst.reverseEach { it ->
println it
}
a
b
c
0:a
1:b
2:c
c
b
a
72. NTTソフト道場研修Grails/Groovy入門Copyright (C) 2013 NTT Software Corporation. All rights reserved. 72
演習: リスト操作(ListOperation)
• ListOperationクラスのメソッドを定義し、
ListOperationTestのテストメソッドがすべて
PASSするようにせよ。
84. NTTソフト道場研修Grails/Groovy入門Copyright (C) 2015 NTT Software Corporation. All rights reserved. 84
暗黙のコンストラクタ
• 明示的にコンストラクタを定義しない場合、
暗黙にMapを引数として取る以下のような
コンストラクタが内部的に生成・利用される。
class Person {
int age
String name
Person(Map m) {
this.age = m.age
this.name = m.name
}
}
85. NTTソフト道場研修Grails/Groovy入門Copyright (C) 2015 NTT Software Corporation. All rights reserved. 85
名前引数によるメソッド呼び出し
• マップを引数にとるメソッドを呼び出す場合、
「キー:値」の形式で順不同に引数を与えること
ができる。
def method(Map m) {
assert m.foo == 1
assert m.bar == 2
}
method( foo: 1, bar: 2 )
method( bar: 2, foo: 1 )
86. NTTソフト道場研修Grails/Groovy入門Copyright (C) 2013 NTT Software Corporation. All rights reserved. 86
演習: その他の操作(OtherOperation)
• OtherOperationクラスのメソッドを定義し、
OtherOperationTestのテストメソッドがすべて
PASSするようにせよ。