機械翻訳について

条件式の使用

条件ロジックを実行する必要がある場合は、使い慣れたif/else構成を使用します。

たとえば、前の項のテキスト・フラグメントの例で、現在のオブジェクトのContactTwitterNamenullを返す場合、Twitter名に関連する静的テキストは含めません。 次のように、if/elseを使用して、この条件付きテキストを含めることができます:

def textFragment = 'We will try to call you at ' + ContactPhoneNumber
if (ContactTwitterName != null) {
  textFragment += ', or send you a tweet at '+ContactTwitterName
}
else {
  textFragment += '. Give us your twitter name to get a tweet'
}
textFragment += '.' 

従来のif/elseブロックは読みやすくなる場合がありますが、それ以外の場合は非常に冗長です。 値がEmailAddressフィールドの末尾が.govサフィクスであるかどうかに依存するemailToUse変数を定義する例を考えてみます。 プライマリ電子メールが.govで終わる場合は、かわりにAlternateEmailAddressを使用します。 従来のif/elseブロックを使用すると、スクリプトは次のようになります:

// Define emailToUse variable whose value is conditionally
// assigned. If the primary email address contains a '.gov'
// domain, then use the alternate email, otherwise use the
// primary email.
def emailToUse
if (endsWith(EmailAddress,'.gov') {
  emailToUse = AlternateEmailAddress 
}
else {
  emailToUse = EmailAddress
}

Groovyの便利なインラインif / then / else演算子を使用すると、同じコードを非常に少ない行に書き込むことができます:

def emailToUse = endsWith(EmailAddress,'.gov') ? AlternateEmailAddress : EmailAddress

インラインのif / then / else演算子には、次の一般的な構文があります:

BooleanExpression ? If_True_Use_This_Expression : If_False_Use_This_Expression

空白を使用してコードをより読みやすくするために書式設定できるため、次のようなインライン条件式をラップすることを検討してください:

def emailToUse = endsWith(EmailAddress,'.gov') 
                 ? AlternateEmailAddress 
                 : EmailAddress