In Str§
有关例程 val,请参阅主要文档 按上下文
multi val(*)multi val(Slip \maybevals)multi val(List \maybevals)multi val(Pair \ww-thing)multi val(\one-thing)multi val(Str , :)
给定一个可以解析为数字值的Str
,它将尝试构造适当的同形异位词,返回 IntStr
、NumStr
、RatStr
或 ComplexStr
中的一个,如果无法解析数字值,则返回一个普通的 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。