In Str§

有关例程 val,请参阅主要文档 按上下文

multi val(*@maybevals)
multi val(Slip:D \maybevals)
multi val(List:D \maybevals)
multi val(Pair:D \ww-thing)
multi val(\one-thing)
multi val(Str:D $MAYBEVAL:$val-or-fail)

给定一个可以解析为数字值的Str,它将尝试构造适当的同形异位词,返回 IntStrNumStrRatStrComplexStr 中的一个,如果无法解析数字值,则返回一个普通的 Str

say val("42").^name;    # OUTPUT: «IntStr␤» 
say val("42e0").^name;  # OUTPUT: «NumStr␤» 
say val("42.0").^name;  # OUTPUT: «RatStr␤» 
say val("42+0i").^name# OUTPUT: «ComplexStr␤»

你可以使用加号和减号,以及 Unicode“减号”作为字符串的一部分

say val("−42");         # OUTPUT: «−42␤»

虽然属于 Unicode 类别Nl(数字字母)和No(其他数字)的字符可以在语言中用作数字文字,但它们不会被val设计转换为数字,并且在它们上使用val将产生失败。对于合成数字(例如 7̈ )也会发生这种情况。如果你需要将此类字符转换为Numeric,请参阅 unival