問題タブ [gstring]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
groovy - GString の評価を回避する方法
groovy を使用して従来のスクリプト システムを拡張する作業を行っています。ソース スクリプトは「Java に似ている」ため、ほとんどの場合、前処理が少しあるグルーヴィーなスクリプトとして解析されます。
私は、invokeMethod() と missingMethod() を使用してレガシー コードをパススルーし、クロージャやその他のグルーヴィーな機能を使用してスクリプトを拡張できるようにしています。ただし、元のスクリプトでは、「$foo」型の文字列を使用して変数を参照しています。レガシー メソッドが missingMethod() によって捕捉された場合、この文字列を GString として評価するのではなく、そのまま出力する必要があります。これは何らかの方法で可能ですか?
groovy - Groovyでその名前の変数値を取得する
次の変数を定義しています。
この置換を機能させる最も簡単な方法は何ですか?どうすればGStringを構築しs2
て評価することができますか?(VALとs2はデータベースからロードされます。このスニペットは、私の問題を示すためだけのものです。)
groovy - groovygstringで評価される変数を渡す
gstring評価内で文字列として評価される変数を渡すことができるかどうか疑問に思っています。最も簡単な例は次のようなものになります
私はpersonインスタンスのlastNameの値を出力することを探しています。最後の手段として、リフレクションを使用できますが、Groovyには、私が気付いていない、もっと単純なものがあるはずだと思います。
sql - GStringからドットをエスケープ
groovy(1.8)がそれをsql.execute内の変数の一部として扱わないように、GStringでドットをエスケープする方法を学びたいと思います。私は次のコードを持っています:
そして、私はこのエラーを受け取りました:
そのことを明確に示しています。変数${myDbPrefix}の一部として解釈されました。
list - Groovy で文字列リストを作成する
Groovy の次のコードはGString
、リストに s を追加します。
ProcessBuilder
このリストでを作成すると、 が得られますClassCastException
。リスト要素を正しい型に強制するグルーヴィーな方法は何ですか?
grails - gstringsを使用してネストされたフィールドにアクセスするGrails
gstringを使用してネストされたフィールドにアクセスしようとしていますが、例外groovy.lang.MissingPropertyExceptionがスローされます。
私は2つのクラスがあります
私がやっているコードのどこかで、
人から都市を取得しようとしている行は、groovy.lang.MissingPropertyExceptionをスローしています
gstringを使用して直接プロパティをフェッチしようとすると機能しますが、上記のコードは機能しません。
何か助けはありますか?
groovy - groovy での引数を使用したメソッドの実行時呼び出し
簡単にするために、次のようなコードがあるとします。
メソッド「evaluate」に渡される式の値を実行する必要があります。
電話の場合
電話の場合
電話の場合
どうやってやるの?ありがとう。
groovy - Groovy で例外メッセージの GStrings を複数行にする方法
特定の文字数/行、たとえば 80 文字を超えてはならない Groovy エラー メッセージの標準 (またはベスト プラクティス) は何ですか?
以下を検討してください(これは正常に機能しています)
これにより、インデント文字のない1行のエラーメッセージが表示されます(私が望むもの)。しかし、これを達成するための他の方法 (「Groovy の方法」) はありますか? そうでない場合、スタンドアロンの Groovy アプリケーションの GString クラスにそのようなメソッドを追加するにはどうすればよいでしょうか (Bootstrap.groovy ファイルに関するヒントが見つかったが、Grails に関連しているように思われる場合)。
例:"""Consider a multi line string as shown above""".toSingleLine()
groovy - GroovyはGString内でchar[]からStringにどのように変換しますか?
char[]
GroovyがaをaString
内に変換する方法を理解しようとしていますGString
。
例:
結果:
パス
最初は、char [](http://groovy.codehaus.org/groovy-jdk/primitive-types/char []。html#toString())でtoString()メソッドを使用すると想定していました。しかし、次のコードを実行した結果は、別のことを示唆しているようです。
結果:
パス
****
パス
私はまたinvokeMethod()
、それを無駄に理解しようとするためにオーバーライドしようとしました:
結果:
パス
クラス[C:toString、[]で呼び出されるメソッド
****
パス
Groovyがこの変換をどのように行うか知っている人はいますか?
groovy - GStringImpl で equals() と == を使用した場合の Groovy の異なる結果
Groovy docsによると、これは次のことも回避するため==
、単なる「賢い」ものです。equals()
NullPointerException
Java のメソッド
==
は実際には Groovy のis()
メソッドであり、 Groovy のメソッド==
は賢いequals()
![...]
しかし、通常の比較を行うには、左または右がそうであるかどうかに関係なく、
equals()
Groovy の を優先する必要があります。==
NullPointerException
null
そのため、オブジェクトが null でない場合、==
andequals()
は同じ値を返す必要があります。ただし、次のスクリプトを実行すると予期しない結果が得られます。
私が得ている出力は次のとおりです。
これは関連する既知のバグGStringImpl
ですか、それとも私が見逃しているものですか?