第3回
いない [9/19 13:04:24]
テスト
kiy0taka [9/19 13:15:40]
自己紹介なう。
ゲンゾウ [9/19 13:21:22]
はじめます。
fujwara [9/19 13:21:26]
つながったかな?
ゲンゾウ [9/19 13:24:10]
アドレスバーに貼り付けて。
javascript:if([]) alert('tst');void(0);
ゲンゾウ [9/19 13:25:00]
groovyは空配列はfalseだよ。
kiy0taka [9/19 13:27:35]
println (!![])
kiy0taka [9/19 13:28:00]
!×2回でオブジェクトをbooleanに返れる。
& lt;div class="log">
fujwara [9/19 13:30:46]
!![] 命名「すごいびっくり」
adsh1y0 [9/19 13:31:01]
test
ゲンゾウ [9/19 13:33:27]
// リストが空かどうかの判定は
if( list ) ・・・
if( list?.isEmpty() ) ・・・
ってしなくていいよ。
kiy0taka [9/19 13:35:29]
三項演算子はメンテされるときに、よけいな処理を入れられないという防御になる!
ゲンゾウ [9/19 13:46:37]
[1,2,3].isCase(2)
ゲンゾウ [9/19 13:46:59]
switch(2){
case [1,2,3]:
assert true;
}
ゲンゾウ [9/19 13:56:45]
groovy:000> import org.codehaus.groovy.runtime.NullObject
===> [import org.codehaus.groovy.runtime.NullObject]
groovy:000> switch(null){
groovy:001> case NullObject: print(true)
groovy:002> break
groovy:003> }
===> null
ゲンゾウ [9/19 13:57:08]
null はNullObjectなので、caseにはいるかな?と思ったけど入らなかった。
ゲンゾウ [9/19 13:58:29]
groovy:000> NullObject.isCase(null)
===> false
だそうです。よくわからん。
ゲンゾウ [9/19 14:09:06]
ちなみに
groovy:000> String.isCase("")
===> true
ゲンゾウ [9/19 14:10:32]
groovy:000> null.isCase(null)
===> true
groovy:000> null.getClass().isCase(null)
===> false
fujwara [9/19 14:15:23]
for ( String i in 'a'..'c' ) store += i
('a'..'c').each{ store2 += it }
もう、for文いらない?
kiy0taka [9/19 14:24:29]
覚えとく。
('12xy3' =~ /\\d/).each { println it }
kiy0taka [9/19 14:52:08]
おださんのセッション中!
わたびき [9/19 15:03:42]
「良いところを見せつける」重要
kiy0taka [9/19 15:11:04]
テストコードをGroovyでかける許可がおりたのがスゴい!
< /div>
ゲンゾウ [9/19 15:25:12]
cloud foundry使ってみたい!!
ゲンゾウ [9/19 16:21:48]
static args){
・・・
}
はいけるが
args){
・・・
}
はいけない。なぜ?
ゲンゾウ [9/19 16:21:54]
おこっとるw
ゲンゾウ [9/19 16:22:23]
static a(args){
・・・
}
はいけるが
a(args){
・・・
}
はいけない。
ゲンゾウ [9/19 16:23:49]
メソッド宣言時には先頭になんかつけろってことと勝手に解釈。
たとえば上の例だと、
public a(args){
・・・
}
は正常に動作した。
ゲンゾウ [9/19 16:32:49]
kiy0taka [9/19 16:32:53]
ゲンゾウ [9/19 16:33:04]
?:
ゲンゾウ [9/19 16:33:10]
kiy0taka [9/19 16:33:14]
fujwara [9/19 16:33:18]
ゲンゾウ [9/19 16:33:27]
:<
fujwara [9/19 16:33:31]
aaax(aaa)
fujwara [9/19 16:33:39]
?:
ゲンゾウ [9/19 16:50:34]
当然だけどこれは動く。
groovy:000> class Book{
groovy:001> String name
groovy:002> }
===> true
groovy:000> class Genzou{
groovy:001> String age
groovy:002> Book book
groovy:003> }
===> true
groovy:000> genzou = [age:'29', book:[name:'groovy in action']]
===> [age:'29', book:[name:'groovy in action']]
fujwara [9/19 16:51:52]
class B{
def var
def cnt
B(){}
B(def var, def cnt){}
B(def var){println "くわれた"} // こいつがあるとまずい
}
b = new B(var:100 , cnt:200)
println b.dump()
ゲンゾウ [9/19 17:11:16]
当たり前だけどコンパイルエラー。
package java.lang
import java.lang.String as S
class String extends S{
public String toString(){
println "aabbcc"
return "aabbcc"
}
}
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, cyclic inheritance involving java.lang.String in class java.lang.String
ゲンゾウ [9/19 17:33:06]
String x
println((x.properties as Map).class)
ってすると、
class java.lang.String
と表示される。
一瞬あせったけど、よく考えると理由がわかる。
ゲンゾウ [9/19 17:33:37]
println((x.properties as Map).getClass())
との違いに注意。
ゲンゾウ [9/19 17:46:11]
gmavenはおださんが今後しらべてくれるらしい(?)
お だ [9/19 17:49:28]
おおっと…あまr
お だ [9/19 17:49:45]
あまり期待しないでください_ _
fujwara [9/19 18:01:22]
今日のピザは・・・・・
fujwara [9/19 18:02:24]
Lサイズヲ2枚・・・・
ゲンゾウ [9/19 18:14:40]
ゲンゾウ留守番中。みんなで買出し。