Scala阶乘法(即"!"):删除点运算符?

lol*_*f64 2 scala implicit-conversion

我设法在scala中为Integer定义一个新的运算符:"!" 阶乘算子.同时,我想在没有点运算符的情况下调用它,这样就不会抛出任何警告(我不想禁用警告功能).可能吗 ?

这是我的测试代码:

implicit.scala

implicit class IntegerUtils(wrapped:Int) {
    def !() = (2 to wrapped).product
}

(1 to 5).foreach { v => println (v.!) }
Run Code Online (Sandbox Code Playgroud)

Rob*_*ier 13

只是import language.postfixOps:

import language.postfixOps
implicit class IntegerUtils(wrapped:Int) {
  def !() = (2 to wrapped).product
}

(1 to 5).foreach { v => println (v!) }            //> 1
                                                  //| 2
                                                  //| 6
                                                  //| 24
                                                  //| 120
Run Code Online (Sandbox Code Playgroud)

正如文档所指出的那样,"后缀运算符与分号推断的交互性很差.大多数程序员因此而避免使用它们." 但是如果你在一个特定的文件中做了很多这样的事情,它就会非常方便.