目前的策略是,当obj为nil时,会中断报错。
--
Nothing is impossible.
在 2012-03-12 09:49:27,free <fen...@legerobot.com> 写道:
>严格的说,obj为nil时返回false也是不恰当的,因为添加一个nil作为foreign没
>有意义
>On Fri, 2012-03-09 at 23:26 +0800, 道哥 wrote:
>> 想了一下,这个策略有这想一个问题,要讨论一下。
>>
>>
>> 如果传入hasForeign的obj本身是一个nil,通过前面的某个函数,比如getById
>> 取出来,但又没有检测返回值。这个时候,不小心传了进来,如果照这种决策改
>> 的话,此时就会返回 true,这是不合理的。
>>
>>
>> 你有没有其它思路或应对办法?
>>
>> --
>> Nothing is impossible.
>>
>>
>>
>>
>> At 2012-03-07 15:29:25,free <18602...@163.com> wrote:
>> >2055 -- obj == nil ,check whether some foreign named 'field'
>> >2056 -- obj ~= nil ,check whether some obj is already in foreign
>> >list
>> >2057 -- instance:inForeign('some_field', obj)
>> >2058 hasForeign = function (self, field, obj)
>> >2059 I_AM_INSTANCE(self)
>> >2060 checkType(field, 'string')
>> >2061 local fld = self.__fields[field]
>> >2062
>> >2063 if obj == nil then -- when obj equal nil ,test has a
>> >foreign name 'field'
>> >2064 if fld and fld.foreign then
>> >2065 return true;
>> >2066 else
>> >2067 return false;
>> >2068 end
>> >2069 end
>> >
>> >
>>
>>
>
>