More Related Content
Similar to Aizu lt tokyo_luxion
Similar to Aizu lt tokyo_luxion (20)
Aizu lt tokyo_luxion
- 2. 自己紹介
• HN
• 無線LANるーたん
• 社内で『るーたん派』が増えている…
• お仕事
• フロント系サーバ(Apache)担当
• 言語
• C++03, Python2.7, Perl, PHP5.3(Ext), XSLT,
etc
- 8. プロパティの自動生成
class Hoge {
def number
}
Hoge hoge = new Hoge(number:10)
assert hoge.number == 10
hoge.number = 3
assert hoge.number == 3
- 9. プロパティの自動生成
class Hoge {
final def number = 10
}
Hoge hoge = new Hoge()
assert hoge.number == 10
hoge.number = 3 // Err!
assert hoge.number == 3 // Err!
- 10. プロパティの自動生成
class Hoge {
private def number = 10
}
Hoge hoge = new Hoge()
assert hoge.number == 10 //Err!
hoge.number = 3 // Err!
assert hoge.number == 3 // Err!
- 11. プロパティの自動生成
class Hoge {
private def number = 10
}
1.8.x だとバグってる
Hoge hoge = new Hoge()
assert hoge.number == 10 //Err!
hoge.number = 3 // Err!
assert hoge.number == 3 // Err!
- 13. クロージャ
Closure c1 = { println it*3 }
c1(4)
Closure c2 = { x -> println x*2 }
c2(2)
(1..100).each { println it }
- 16. GString
def str = "aiueo"
assert "1. $str" == "1. aiueo"
assert "2. ${str*3}" == "2.
aiueoaiueoaiueo"
- 17. コレクション用GDKメソッド
List list = ["a","b","c"]
assert list.first() == "a"
assert list.tail() == ["b", "c"]
list = [["l", "u", "x"], ["i", "o", "n"]]
assert list.transpose() == [["l", "i"], ["u", "o"], ["x",
"n"]]
list = [[1, 2], ["l", "u"]]
assert list.combinations() == [[1, "l"], [2, "l"], [1,
"u"], [2, "u"]]
- 18. コレクション用GDKメソッド
list = ["l", "u"]
list << "x"
assert list == ["l", "u", "x"]
list = ["l", "u", ["x", "i"]]
assert list.flatten() == ["l", "u", "x", "i"]
list = [1, 2, 3, 4, 5]
assert list.findAll{it > 3} == [4, 5]
- 20. Swing Builder
import groovy.swing.SwingBuilder
import java.awt.BorderLayout as BL
class Test {
static void main(args) {
def swing = new SwingBuilder();
def data = [[A:'a', B:'b']]
def myTable = swing.table() {
tableModel(list:data) {
propertyColumn(header:'One', propertyName:'A')
propertyColumn(header:'Two', propertyName:'B')
}
}
def frame = swing.frame(title:'DEMO') {
panel(layout: new BL()){
scrollPane(constraints: BL.NORTH) { table(myTable) }
panel(constraints:BL.SOUTH) {
button(text:'追加', actionPerformed: { event ->
data << [A:'日本語', B:'いけるかな']
myTable.model.fireTableDataChanged()
})
}
}
}
frame.pack()
frame.show()
}
}
- 22. 語れなかったその他
• Grails
• Groovy版Ruby on Rails
• Gradle
• Mavenのようなビルドツール。XMLでなく
Groovyで記述
• GParts
• Groovy Parallel System;並列処理、非同期処理
などを実現するライブラリ
Editor's Notes
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n