命令行 – 为什么我的命令行参数被解释为布尔值(Perl 6)?
发布时间:2020-12-16 06:05:42 所属栏目:大数据 来源:网络整理
导读:鉴于此计划: #!/bin/env perl6sub MAIN ($filename='test.fq',:$seed=floor(now) ){ say "Seed is $seed";} 当我在没有任何命令行参数的情况下运行它时,它工作正常.但是,当我给它一个种子的命令行参数时,它说它的值为True: ./seed.p6 --seed 1234Seed is T
鉴于此计划:
#!/bin/env perl6 sub MAIN ($filename='test.fq',:$seed=floor(now) ) { say "Seed is $seed"; } 当我在没有任何命令行参数的情况下运行它时,它工作正常.但是,当我给它一个种子的命令行参数时,它说它的值为True: ./seed.p6 --seed 1234 Seed is True 为什么数字1234被解释为布尔值? 解决方法
Perl 6的MAIN参数处理可以很好地逐步打字.参数可以并且应该进行类型转换以减少歧义并改进验证:
#!/bin/env perl6 sub MAIN (Str $filename='test.fq',Int :$seed=floor(now)) { say "Seed is $seed."; } 在将种子类型转换为Int之后,必须为此选项指定一个数字参数,并且不再默认为布尔值: perl6 ./seed.pl -seed 1234 Usage: ./seed.pl [--seed=<Int>] [<filename>] perl6 ./seed.pl -seed=abc Usage: ./seed.pl [--seed=<Int>] [<filename>] perl6 ./seed.pl -seed=1234 Seed is 1234. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |