Isn't that a smart match on a type object?

> say @objects.any ~~ Bool
True
> say @objects.any ~~ Rat
False


-y

-y


On Thu, Aug 15, 2019 at 8:11 AM Mikkel <mikkelst...@gmail.com> wrote:
>
> Hi Simon
>
> That was certainly a simple way.
> But this checks for the value of True rather than the object type Bool right? 
> What if I wanted to know if an Int, (with any given value) were among the 
> values?
>
> Best regards
> Mikkel
>
> On Thu, 15 Aug 2019 at 16:38, Simon Proctor <simon.proc...@gmail.com> wrote:
>>
>> The easiest option would be use the set operators. In this case (elem) (or 
>> ∈) will coerce your array to a Set and then check to see if the given item 
>> is in it.
>>
>> my @objects = [1, True, "string", 5, Str.new];
>> say True (elem) @objects;
>> say True ∈ @objects;
>>
>> Give True. Note Removing the True from the list and we get False so we don't 
>> have to worry about the joys of truthiness it's taking your types into 
>> account.
>>
>> Hope that helps.
>>
>> Simon
>>
>>
>> On Thu, 15 Aug 2019 at 15:29, Mikkel <mikkelst...@gmail.com> wrote:
>>>
>>> Hello.
>>>
>>> Suppose I have an array (or should I say a positional?):
>>> my @objects = [1, True, "string", 5, Str.new];
>>> Containing different kind of objects. It could be Ints, Strs and Bools.
>>> Is there a nice way of determining if for example a Bool is present in the 
>>> array, returning True or False whether the given object is present or not?
>>>
>>> Best Regards
>>> Mikkel Birkedam
>>
>>
>>
>> --
>> Simon Proctor
>> Cognoscite aliquid novum cotidie
>>
>> http://www.khanate.co.uk/

Reply via email to