Curl Global Community
null 判断をシンプルに記述したい - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: null 判断をシンプルに記述したい (/showthread.php?tid=960)



null 判断をシンプルに記述したい - umemura - 08-28-2013

NULLである可能性のあるクラスの中の、フィールドを、 NULL でないかどうかを判断する際に、
if-non-null をネストするのが面倒です。

ORBを利用すると、各フィールドはすべて Nullable になるため、
この問題は特に多く発生すると思います。

よい判断方法はありますでしょうか。

Code:
{define-class public Test
  field test-a:#String
  {constructor public {default
                          str:#String = null
                      }
    set self.test-a = str
  }
}

{CommandButton
    label = "NULL チェック",
    {on Action do
        let t:#Test  = null
        {if-non-null t then
            {if-non-null t.test-a then
                {popup-message "all-not-null"}
            }
        }
    }
}



RE: null 判断をシンプルに記述したい - dyoshida - 08-28-2013

Curl IDEドキュメントの "if-non-null (マクロ)"の説明の最後の方に書かれている
複数の条件をカンマで区切って判断する方法が便利、というお題でしょうか。

こんな感じで意図とあってますでしょうか。
Code:
||BEFOR
        {if-non-null t then
            {if-non-null t.test-a then
                {popup-message "all-not-null"}
            }
        }

||AFTER
        {if-non-null t, t.test-a then
            {popup-message "all-not-null"}
        }



RE: null 判断をシンプルに記述したい - umemura - 08-28-2013

そのまま「if-non-null」のヘルプに記載されていましたか。すいません。

if-non-null 句の中で、カンマで連続してチェックできるんですね。
エラーになるので困っていたのですが、順番が重要なんですね。

Code:
{define-class public Test
  field test-a:#String
  {constructor public {default
                          str:#String = null
                      }
    set self.test-a = str
  }
}
{CommandButton
    label = "外枠クラスを先にチェック",
    {on Action do
        let t:#Test  = null
        {if-non-null t,  t.test-a then
            {popup-message "all-not-null"}
        }
    }
}

{CommandButton
    label = "フィールドを先にチェック(エラー)",
    {on Action do
        let t:#Test  = null
        {if-non-null t.test-a, t then
            {popup-message "all-not-null"}
        }
    }
}



RE: null 判断をシンプルに記述したい - dyoshida - 08-28-2013

実は自分も最初ヘルプの説明を最後まで読んでおらず、
人に教えてもらってこの機能を知りました…

太字で強調して書いてほしいくらい便利な機能ですね。