Thread Rating:
  • 297 Vote(s) - 2.88 Average
  • 1
  • 2
  • 3
  • 4
  • 5
null 判断をシンプルに記述したい
08-28-2013, 04:23 PM,
#1
null 判断をシンプルに記述したい
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"}
            }
        }
    }
}
08-28-2013, 04:53 PM,
#2
RE: null 判断をシンプルに記述したい
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"}
        }
08-28-2013, 04:56 PM, (This post was last modified: 08-28-2013, 04:57 PM by umemura.)
#3
RE: null 判断をシンプルに記述したい
そのまま「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"}
        }
    }
}
08-28-2013, 05:04 PM,
#4
RE: null 判断をシンプルに記述したい
実は自分も最初ヘルプの説明を最後まで読んでおらず、
人に教えてもらってこの機能を知りました…

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

Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('960')