Hi all,
just struggled over the fact that Json objects provide access to their keys via #doesNotUnderstand:, but they do not override #respondsTo:. Example:
Question: Is this discrepancy indeed desired behavior? Or should we rather always try to override #doesNotUnderstand: and #respondsTo: together?
Best, Christoph
Carpe Squeak!
|
> On 31.01.2020, at 10:14, Thiede, Christoph <[hidden email]> wrote: > > Hi all, > > just struggled over the fact that Json objects provide access to their keys via #doesNotUnderstand:, but they do not override #respondsTo:. Example: > > json := Json readFromString: '{"foo": 42}'. > json foo. "42" > json respondsTo: #foo. "false" > > Question: Is this discrepancy indeed desired behavior? Or should we rather always try to override #doesNotUnderstand: and #respondsTo: together? This is actually done very seldom, IIRC. But maybe a good pattern, tho. Question is, should X class>>canUnderstand: be overwritten, too? Best regards -Tobias > > Best, > Christoph |
> Question is, should X class>>canUnderstand: be overwritten, too?
This would not be possible in my example, would it? Each json object understands different keys ... This is also why I favor #respondsTo: over #canUnderstand: in general.
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von Tobias Pape <[hidden email]>
Gesendet: Freitag, 31. Januar 2020 10:30:20 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] Should you override #doesNotUnderstand: and #respondsTo: together? > On 31.01.2020, at 10:14, Thiede, Christoph <[hidden email]> wrote: > > Hi all, > > just struggled over the fact that Json objects provide access to their keys via #doesNotUnderstand:, but they do not override #respondsTo:. Example: > > json := Json readFromString: '{"foo": 42}'. > json foo. "42" > json respondsTo: #foo. "false" > > Question: Is this discrepancy indeed desired behavior? Or should we rather always try to override #doesNotUnderstand: and #respondsTo: together? This is actually done very seldom, IIRC. But maybe a good pattern, tho. Question is, should X class>>canUnderstand: be overwritten, too? Best regards -Tobias > > Best, > Christoph
Carpe Squeak!
|
Regarding canUnderstand:, maybe it's time for the third boolean called "it depends" or "maybe". ;-) Thiede, Christoph <[hidden email]> schrieb am Fr., 31. Jan. 2020, 10:43:
|
When would you use this third boolean concretely? To me, this sounds rather like an overengineering solution, maybe premature optimization, for now ... :-)
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von Jakob Reschke <[hidden email]>
Gesendet: Freitag, 31. Januar 2020 18:16:51 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] Should you override #doesNotUnderstand: and #respondsTo: together? Regarding canUnderstand:, maybe it's time for the third boolean called "it depends" or "maybe". ;-)
Thiede, Christoph <[hidden email]> schrieb am Fr., 31. Jan. 2020, 10:43:
Carpe Squeak!
|
*maybe* it was also a joke :-) Thiede, Christoph <[hidden email]> schrieb am Fr., 31. Jan. 2020, 18:22:
|
Hm, maybe we will never now - the crux of ternary logic ;-)
But actually, I wonder whether any of these calls to "something class canUnderstand: aSelector" is useful, shouldn't we rather replace a big part of them with "something respondsTo: aSelector"? Von: Squeak-dev <[hidden email]> im Auftrag von Jakob Reschke <[hidden email]>
Gesendet: Freitag, 31. Januar 2020 18:23:19 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] Should you override #doesNotUnderstand: and #respondsTo: together? *maybe* it was also a joke :-)
Thiede, Christoph <[hidden email]> schrieb am Fr., 31. Jan. 2020, 18:22:
Carpe Squeak!
|
Free forum by Nabble | Edit this page |