@tyuki39さんの groovyconsoleってスクリプトの実行を中止出来ないのかな?組み合わせパターンを間違って多めに作ったときに固まって困る。 2011-04-16 21:58:38 via Teewee のつぶやきを切っ掛けとして、Groovy 1.8のGroovyConsoleを試してみて気づいたのですが、以前(1.7.x)のGroovyConsoleでは、無限ループ、もしくは長時間走行するスクリプトを途中で止めることができないことがありました。 GroovyConsoleには上のように「赤いバツ」のボタンがあって、これを押すと、走行中のGroovyスクリプトのスレッドに対しておそらくThread#interrupt()が発行されるのですが、ご存知のようにJavaにおけるスレッド外からの「スレッド止め」は鬼門であり、安全に止める方法はもともとありませんでした。Java的には「
このシリーズの一覧はこちら Groovy v1.8リリースノートより。 はじめに 待ちに待ったGroovy v1.8がやっと出ましたね!ということで、Groovy v1.8の新機能をサクっと紹介したいと思います。 Groovy v1.8は結構多くの機能拡張がなされておりますので、サラっと行きたいと思います。 コマンドチェーン(ドメイン固有言語:DSL) Groovy v1.8以前まではトップレベルでのメソッド呼び出しの括弧は省略できませんでしたが、新しいコマンドチェーン機能を使えば括弧なしのメソッド呼び出しが可能になります。 これは、a b c d のように呼び出した場合は実際には a(b).c(d) と同等となるようなことです。複数メソッドやクロージャ、名前付き引数と一緒に機能して、さらに右側に連ねてゆくことができます。 新しい構文でサポートされている例を見てみましょう。 turn le
Groovy is a great language to write DSL implementations. The Groovy syntax allows for example to leave out parenthesis or semi colons, which results in better readable DSL (which is actually Groovy code). To run a DSL script we can use the GroovyShell class and evaluate the script. By default the script is evaluated with an instance of groovy.lang.Script class. But we can extends this Script class
Groovy!(挨拶) 最近Groovyであまり遊べていないfumokmmです。G* AdventCalender2012の10日目ということで、久々に記事を書かせていただいております。 せっかくの機会なので、Groovyでメタプログラミングする際のとっかかり部分をまとめてみました。自分の理解が至らないところがあると思いますので、変なところがあったらツッコミよろしくお願いします。では早速スタートです。 Groovyでメタプログラミング GroovyではあらゆるクラスにExpandoMetaClassと呼ばれる特別なクラス(メタクラス)が提供されていて、メソッドやプロパティを利用する際にこのメタクラスを経由して様々な力を得ることができます。 たとえば、メタクラスに実行時、動的にメソッドを定義してあげれば、あたかも初めから存在していたかのようにそのメソッドが利用できるようになるという寸法です。
G* Advent Calendar 2017 の 6日目は groovy.lang.Closure のインスタンスを Kotlin で生成・取得する方法です。 Groovy! 3分くらいで読み終われます。 groovy.lang.Closure のインスタンスを Kotlin で生成・取得する方法です。Kotlin コードの中で Closure を作って Groovy に渡すということを指しています。 生成方法 早速ですが生成方法です。 ある A というクラスがあって、 Closure の中で用いるプロパティを A から取得したい場合は次のような関数を書きます。 fun <A> closure(a: A, cl: A.() -> Unit): Closure<Unit> = object: Closure<Unit>(a) { fun doCall() = this@closure.cl
GroovyをUbuntuにインストールして勉強中。 Ubuntu 12.10にGroovy 2.1.9をインストールする(GVM:Groovy enVironment Manager使用) Groovy学習1 groovyシェル、Hello, World、変数、リストとマップ Groovy学習2 クロージャ、ファイル処理、文字列処理 Groovy学習3 正規表現 Groovy学習4 正規表現を使用し、データをまとめて取り出す 今回は、使用できる演算子について調べてみます。 Operator Overloading Operators このあたりを参考にしました。 算術演算子、ビット演算子 演算子「+」とかは「plus」というメソッドのシンタックスシュガーみたいです。 groovyshで試してみました。 groovy:000> a = 1 ===> 1 groovy:000> b = 12
id:fumokmm さんが書かれていた groovyshではdefは使わないほうがいい(たぶん) が気になったので、それが 『たぶん』 ではなく 『真実』 であることを書いてみた。 検証環境は Groovy 1.7.5, JVM: 1.6.0_20 真実 その 1... groovysh は実行単位で インスタンスが異なる。 groovy:000> this; ===> groovysh_evaluate@20dccfab groovy:000> this; ===> groovysh_evaluate@2e831a91 真実 その2... 宣言した変数は インスタンス変数ではない。 → 他のインスタンスからは読み取れない。 groovy:000> def a = 0; this.a; ERROR groovy.lang.MissingPropertyException: No such
この投稿は「G*Advent Calendar(Groovy,Grails,Gradle,Spock...) Advent Calendar 2016」の13日目の記事です。 はじめに あれ、「Groovyのコレクションのあの操作、なんだっけ?ほらのあの言語でいうあれだよ、あれ?」ってなった時のための一覧性重視のチートシートです。対象クラスは、java.lang.Object[]や、java.utils.Collection、java.utils.Listなど様々です。掲載順は、筆者自身がよく使う順で並べました。副作用があるメソッドは除いてあります。 Groovyコレクション操作、チートシート // 射影 assert ["Java", "Groovy", "Kotlin", "Scala", "Ceylon"].collect { it.length() } == [4, 6, 6, 5
2回目の呼び出し以降は計算せず高速で値を返却するメソッドを作ってみました。 いわゆるメモ化ですね。Groovyの場合はクロージャが使えるので、理解しやすいと思います。 動作環境 ソース 動作環境 Groovy Version: 3.0.2 JVM: 14 Vendor: Oracle Corporatio…
For the last 20 years, I’ve designed, developed, and marketed products in various industries. I love everything about the process of discovering struggles and building innovative solutions to help people make progress. In my quest to become a better human for me, my family, and society and live a happy and fulfilling life, I’ve become obsessed with cognitive optimization and longevity. I’m on a co
はじめに この記事はA Groovy DSL from scratch in 2 hours | Groovy Zoneを意訳したものです。訳者の力不足により翻訳に未熟な部分が多数あると思われますこと、ご勘弁願います。 ゼロから2時間で作るGroovy DSL 今日はついてるな。DZoneでArchitecture Rulesという小さくて素敵なフレームーワークのJDependの抄録を見つけたからだ。 Architecture Rulesは自分自身のXMLスキーマによって設定されます。これが例です。 <architecture> <configuration> <sources no-packages="exception"> <source not-found="exception">spring.jar</source> </sources> <cyclicaldependency t
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く