次のコードは、「変数 API が未定義です」という未定義のエラーをスローします。
public string function foo() {
var bar = "";
if (somecondition) {
var api = new some.path.to.component();
bar = api.baz();
}
return bar;
}
以下は正しく機能しますが、
public string function foo() {
var bar = "";
var api = new some.path.to.component();
if (somecondition) {
bar = api.baz();
}
return bar;
}
変数を事前定義して回避しようとすると、変数が再割り当てされていないことが明らかになり、「java.lang.String 型のオブジェクトでメソッド find を呼び出せません」がスローされます。
public string function foo() {
var bar = "";
var api = "";
if (somecondition) {
api = new some.path.to.component();
bar = api.baz();
}
return bar;
}
CF9.1のバグ?言語機能?明らかに、条件が真の場合にのみコンポーネントを作成したいので、後者は機能しますが、少し無駄に感じます。