> On Sun, Mar 3, 2019 at 11:09 AM ToddAndMargo via perl6-users > <[email protected] <mailto:[email protected]>> wrote: > > Hi All, > > I want to pass an integer to a sub. The only > valid values of the integer are 1, 2, 4, 8, and 16. > > Other than using "if" to test their values, is > there a way to state that an integer can only > have certain predefined values? > > Many thanks, > -T >
On 3/3/19 2:16 AM, Fernando Santagata wrote:
Hi Todd, is this what you're looking for? sub mysub(Int $value where * ~~ 1|2|4|8|16) { say "Got $value" } mysub 2; # Got 2mysub 3; # Constraint type check failed in binding to parameter '$value'; expected anonymous constraint to be met but got Int (3)
> -- > Fernando Santagata Hi Fernando, Perfect! Thank you! That way I can catch bad values at compile time and not have to wait and see what it gets fed. In my usage, I will be sending the number of bytes to extract a "little enders" from a Buf. -T
