自定义运算符的代码基本上看起来像这样.请忽略这种形式的明显精度下降,因此无用的运算符.
postfix operator £ { } postfix func £(number: Double) -> Int { return Int(number) } 3.50£ // returns Int(3)
这在Swift中运行良好.有趣的是,虽然我在尝试与€符号完全相同时遇到错误.
postfix operator € { } postfix func €(number: Double) -> Int { return Int(number) }
这会产生错误”’被认为是标识符,而不是运算符.我不遵循为什么不允许这样做.
解决方法
两个货币符号之间的主要区别在于£(以及¢和¥)在Latin-1补充块(U 0080 – U 00FF)中,而€在货币符号块(U 20A0 – U 20CF)中,由于某种原因,Swift语言认为这些类似于标识符而不是类似运算符.
>运算符的第一个字符必须是以下之一:
>.
> / = – !*%<>& | ^〜?
> Latin-1补充:¡¢¥|§«¬®°±¶»¿×÷
>一般标点符号:‖‗†‡•‣.‥…‧‰‱’“‴`”‷‸<>※!‽〜⁁⁂⁃⁅⁆⁇⁇ ⁗⁘⁙⁚⁛⁜⁝⁞
>箭头(U 2190 – U 21FF):整块
>数学运算符(U 2200 – U 22FF):整块
>其他技术(U 2300 – U 23FF):整块
>箱形图(U 2500 – U 257F):整块
>块元件(U 2580 – U 259F):整块
>几何形状(U 25A0 – U 25FF):整块
>其他符号(U 2600 – U 26FF):整块
>标志(U 2700 – U 27BF):除了带圆圈的数字以外的所有数字❶-❿,➀-➉,➊-➓
>其他数学符号-A(U 27C0 – U 27EF):整块
>补充箭头-A(U 27F0 – U 27FF):整块
>盲文模式(U 2800 – U 28FF):整块
>补充箭头-B(U 2900-U 297F):整块
>其他数学符号-B(U 2980 – U 29FF):整块
>补充数学运算符(U 2A00 – U 2AFF):整块
>其他符号和箭头(U 2B00 – U 2BFF):整块
>补充标点符号(U 2E00 – U 2E7F):整个块
> CJK符号和标点符号:,.〃<>“”「」「」【〓】〔〕〖〗= [=〜“”“〠〡〢〣〤〥〦〧〨〩〪〭〮〯〫〬〰 >运算符的其余部分也可以是以下字符之一:
>组合变音符号(U 0300 – U 036F):整块
>组合补充变音符号(U 1DC0 – U 1DFF):整个块
>组合符号的变音符号(U 20D0 – U 20FF):整块
>变化选择器(U FE00 – U FE0F):整块
>组合半标记(U FE20 – U FE2F):整块
>变量选择器补充(U E0100 – U E01FF):整块
> A.只有当第一个字符是…时,它才会出现在运算符的其余部分.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。