Skip to content

Groovy#

Groovyとは、Javaエコシステムとして、JCPで仕様が策定されているインタプリタ型言語。 Javaの文法に加え、動的型づけの機構を持っていて、いろいろなコンポーネントをつなぎ合わせたりする時に使用すると便利。 いままで煩雑だったXMLとかの生成とかを簡単にかけたりしますって感じですかね。 Javaの実装コードと、Groovyでいろいろ実装してみることがよさそう。

書籍#

プログラミングGroovy#

  • Groovyの世界へようこそ!
  • Groovyの利用方法
  • プログラミング言語Groovy
  • Groovyのライブラリ
  • 進んだ話題
  • Groovyエコシステム
  • Groovy1.8の新機能

本家サイト#

インターネット情報#

マニュアル#

ソースコード#

ユーザ団体#

仕様#

ダウンロード#

SDKMANでダウンロード

インストール#

SDKMANでインストール

付属コマンド#

Javaとの差分#

  • スクリプト型実行
  • 動的型システム
  • コレクションリテラル
  • クロージャ
  • 演算子オーバーロード
  • MOPやAST変換によるメタプログラミング機構
  • GDK
  • ビルダー
  • パーサライブラリやGPath式
  • AntやJUnitの組み込みサポート
  • テストコード
  • ユーティリティ
  • ビルドコード
  • ゲッター・セッターの自動生成
  • 動的にメソッドを追加することができる

基本構文#

変数#

定数#

データ型#

配列#

演算子#

制御構文#

組み込み関数#

ユーザ定義関数#

標準クラスライブラリ#

リクエスト情報#

レスポンス情報#

オブジェクト指向構文#

セキュリティ対策#

データベース連携#

認証#

ファイルアップロード#

動作環境#

設定ファイル#

開発環境#

テスト環境#

デバッグ環境#

エラー箇所がわかればOK

ログ環境#

コマンドライン実行での標準入力からの引数渡し#

1-1#

new File("/etc/passwd").eachLine{println it.split(":")[0]}

1-2#

["/bin/bash","/bin/sh"].each{c=0;str=it;new File("/etc/passwd").each{if(it.contains(str))c++};println "$str = $c"}

1-3#

def a(file){new File(file).listFiles().each{if(!it.isFile())a(it.path) else println it.path}}; a("/etc")