需要 Readline - 您不能创建这种类型的实例 (Readline)

sid*_*com 5 require readline raku

当我运行此代码时

require Readline;
my $rl = Readline.new;
my $string = $rl.readline( ':');
$string.say;
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

您不能创建这种类型的实例 (Readline)

当我use用来加载Readline它时。为什么不起作用require Readline

Jon*_*ton 7

由于require导致模块在运行时加载,Readline符号的查找也必须推迟到运行时。这可以使用::('Type::Name')语法来完成,如下所示:

require Readline;
my $rl = ::('Readline').new;
my $string = $rl.readline( ':');
$string.say;
Run Code Online (Sandbox Code Playgroud)

  • 不,这感觉就像是黑客攻击;最好将其跟踪为希望编译器生成后期绑定查找的名称。如果它是由多部分组成的名称怎么办? (2认同)