2004年11月16日
川俣晶の縁側ソフトウェア技術雑記total 3275 count

ソフト冒険記・Groovy

Written By: 川俣 晶連絡先

 Groovyを一度だけ使っておこうと思っていました。

 身体もボロボロ、時間もないけれど、(むしろ「だからこそ」)、強引に時間を割り込んで動かしてみました。

まずは、Hello World §

 とりあえず、対話モードを提供するgroovyshを使ってHello Worldを実現。

 入力した文字は強調してあります。

D:\delme\groovy-1.0-beta-7\bin>set JAVA_HOME=D:\Program Files\Java\jdk1.5.0

D:\delme\groovy-1.0-beta-7\bin>groovysh

Lets get Groovy!

================

Version: 1.0-beta-7 JVM: 1.5.0-b64

Type 'exit' to terminate the shell

Type 'help' for command help

groovy> println "Hello World!"

groovy> go

Hello World!

groovy>

 たったこれだけ。実にお手軽ですね。

for each構文 §

 なぜいつもサンプルがfor each構文かって?

 イテレータの列挙は好きだからです (笑。

 とりあえず、シンプルにやってみました。

groovy> [1, 2, 3].each { println it }

groovy> go

1

2

3

 問題なく綺麗に行きますね。

 あまりに綺麗に行きすぎたので、ネストしたデータを食わせたらどうなるのかと試してみました。

groovy> ["abc","def",[1, 2, 3]].each { println it }

groovy> go

abc

def

[1, 2, 3]

 うーん、綺麗に行きすぎ (笑。

 確かに、Groovyは良くできていると認めねばなりません。

レンジもあるでよ §

 うひょ~、レンジもありですか。

 こんなこともできちゃいましたよ。

groovy> (1..5).each { println it }

groovy> go

1

2

3

4

5

 しかも、こんなのまでありですか。

 これは面白い!

groovy> list=10..20

groovy> println list[2,4]

groovy> go

[12, 14]

 ここでlistは、10から20までのレンジを含んでいます。

 list[2,4]の構文は、2次元配列へのアクセスではなく、listの2番目と4番目のアイテムを取り出すことを示しています。(たぶん)。

 面白すぎますね。

===比較演算子 §

 はっきり言って、まとにドキュメント読んでません。

 ごく短時間、適当に見ている間に見つけた面白そうなものだけ試しています。

 というわけで、ふと目を引いたのは===演算子。イコール記号3個です。

 両者の違いを引き出すのに成功した事例を以下に示します。

groovy> println "aa" == "a" + "a"

groovy> go

true

groovy> println "aa" === "a" + "a"

groovy> go

false

 ==演算子は同値判定。

 ===は同参照判定、つまり.NET FrameworkのReferenceEquals相当ということのようですね。

 Javaの言語仕様の中で一貫性を欠いている使いにくい部分の1つが、値型と参照型で==演算子の意味が変わってしまう点だと思いますが、Groovyは綺麗に乗り越えているようですね。

 ますます、Groovyは良くできていると認めねばなりません。

強制中断 §

 面白すぎるので、ここで強制中断します。

 こんなもので遊んでいたら、仕事になりません (笑い

 かなり先入観が裏切られた気分です。良い意味で。

 Groovy入門、のような記事の依頼は引き受けても良いかな、と思いました。

 (などと書くとあとで苦しむ羽目になりますが)

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2004年
11月
17日
C#において、なぜIntPtr ptr = new IntPtr (0x80000000);がオーバーフロー例外になるのか
3days 0 count
total 11702 count
【技術雑記】の前のコンテンツ
2004年
11月
16日
ソフト冒険記・J2SE Development Kit 5.0
3days 0 count
total 3595 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20041116145559
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.