|
This channel is intended for people just starting with the Raku Programming Language (raku.org). Logs are available at irclogs.raku.org/raku-beginner/live.html Set by lizmat on 8 June 2022. |
|||
|
00:50
Kaipei left
|
|||
| sampersand—2B +| +^2B == FF | Is there a way to do type assertions, such as asserting `.WHAT` is a type? In essence, i'm trying to construct another instance of a mixed-in type: ``` | 02:10 | |
| class Foo { | |||
| has $.field; | |||
| method incr { $?CLASS.new: field => self.field + 1 } | |||
| } | |||
| my $foo = Foo.new(field => 4) but role { | |||
| method field { callwith() * 2 } | |||
| }; | |||
| say $foo; | |||
| say $foo.incr; | |||
| say $foo.incr.incr;``` | |||
| Is there a way to do type assertions, such as asserting `.WHAT` is a type? In essence, i'm trying to construct another instance of a mixed-in type: ``` | |||
| class Foo { | |||
| has $.field; | |||
| method incr { | |||
| $?CLASS.new: field => $!field + 1 | |||
| # doesn't work: | |||
| # .new: field => $!field + 1 | |||
| } | |||
| } | |||
| my $foo = Foo.new(field => 3) but role { | |||
| method field { callwith() * 2 } | |||
| }; | |||
| say $foo.field; # should return 6 | |||
| say $foo.incr.field; # should be 8, but is 4``` | |||
| Is there a way to do type assertions, such as asserting `.WHAT` is a type? In essence, i'm trying to construct another instance of a mixed-in type: ``` | |||
| class Foo { | |||
|
02:16
razetime joined
|
|||
| guifa_ | .WHAT should produce a type object always, AFAIK. It's not even a real method, and is compiler controlled. I'm not sure I see how it would benefit what you're trying to do | 02:53 | |
| your last code works fine for me: | 02:56 | ||
| m: class A { has $.b; method i { self.new: b => $!b + 1} }; my $c = A.new(:3b) but role { method b { callsame() * 2 } }; say $c.b; say $c.i.b; | |||
| camelia | 6 8 |
||
| guifa_ | the reason $?CLASS doesn't work is that it will refer to a fresh unmixed class, so the role isn't applied | 02:57 | |
| self.new (or even self.WHAT.new if you feel dirty acting on an definite object) will keep the mix | 02:58 | ||
| sampersand—2B +| +^2B == FF | cool thanks | 03:11 | |
| that works :-) | 03:15 | ||
| What's the purpose of `my method foo`? why have the `my`? Likewise for `submethod foo` | 03:24 | ||
|
04:00
razetime left
04:35
razetime joined
04:37
Ebudae joined
04:41
Heptite left
04:42
Ebudae left
05:13
Manifest0 left,
gfldex left,
human_blip left,
gfldex joined,
Manifest0 joined
05:16
human_blip joined
|
|||
| Nemokosch | docs.raku.org/language/objects#ind...Submethods | 05:55 | |
|
06:59
kueppo joined
07:47
dakkar joined
08:01
razetime left
08:25
kueppo left
08:26
razetime joined
09:05
razetime left,
razetime joined
10:00
Kaiepi joined
10:05
razetime left
10:27
razetime joined
12:07
discord-raku-bot left,
discord-raku-bot joined
12:29
jgaz joined
13:04
discord-raku-bot left,
discord-raku-bot joined
13:06
kueppo joined
13:32
discord-raku-bot left
13:33
discord-raku-bot joined
13:37
discord-raku-bot left,
discord-raku-bot joined
|
|||
| lizmat | And yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2022/10/17/2022-...p-no-fear/ | 14:10 | |
|
14:35
Heptite joined
16:35
dakkar left
18:16
razetime left
19:20
Kaiepi left,
Kaiepi joined
19:38
Kaiepi left,
Kaiepi joined
19:43
Kaiepi left
20:05
Kaiepi joined
22:58
Heptite left,
Heptite joined
23:00
jgaz left
|
|||