byKey and byValue: properties or methods?
Steven Schveighoffer
schveiguy at yahoo.com
Thu Jan 19 16:57:51 PST 2012
On Thu, 19 Jan 2012 18:41:44 -0500, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:
> On 1/19/12 4:43 PM, Steven Schveighoffer wrote:
>> On Thu, 19 Jan 2012 14:06:00 -0500, torhu <no at spam.invalid> wrote:
>>> If the type of byKeys is Range, I would expect to be able to treat it
>>> like one. Not like one, then another, then another, then another... ad
>>> infinitum.
>>
>> I don't know what you mean. You can treat it like one.
>>
>> -Steve
>
> It's the rvalue aspect. byKey does not hold a range inside the hashtable
> (as a member variable would do). Each use of byKey gives you a range
> that you get to iterate from the beginning.
The point of a property is to allow for read-only access on something that
is logically a property but can only be implemented via a function.
byKeys is such a property. There is no way to specify a field that
behaves the same. This doesn't make properties invalid or useless.
But Torhu, your use of terminology doesn't make sense. The type of byKeys
is a Range, and you can use it as a Range. A range on a container is a
shallow view, it fundamentally does not affect the container topology.
-Steve
More information about the Digitalmars-d
mailing list