Scala 字符串重复运算符不使用';不通勤

Scala 字符串重复运算符不使用';不通勤,scala,Scala,这很有效 print("scala" * 5) 这不是 print(5 * "scala") 为什么不两个都做呢?*操作员上下班难道没有意义吗 编辑:为了澄清,我想知道是否有一个令人信服的原因,为什么该语言没有将5*“scala”作为Int上的方法。*是scala中对象上的方法: “Scala”*5与调用string对象的*方法相同 5*“Scala”表示调用integer对象的*方法。*是Scala中对象的方法: “Scala”*5与调用string对象的*方法相同 5*“Scala”表示

这很有效

print("scala" * 5)
这不是

print(5 * "scala")
为什么不两个都做呢?
*
操作员上下班难道没有意义吗


编辑:为了澄清,我想知道是否有一个令人信服的原因,为什么该语言没有将
5*“scala”
作为Int上的方法。

*
是scala中对象上的方法:

“Scala”*5
与调用string对象的
*
方法相同


5*“Scala”
表示调用integer对象的
*
方法。

*
是Scala中对象的方法:

“Scala”*5
与调用string对象的
*
方法相同

5*“Scala”
表示调用integer对象的
*
方法。

print(“Scala”*5)
计算为
print(“Scala”。*(5))

也就是说,字符串有一个操作符
*
,它接受一个整数参数来重复字符串

要使
5*“scala”
执行与
“scala”*5
相同的操作,需要为以下整数定义一个运算符:

def * (s: String) = s * x   // where x is the integer
在Scala中,
Int
没有这样的操作符,这似乎是有道理的

您可以使用此功能,例如:

class MyInt(x: Int) {
  def * (s: String) = s * x
}

val a = new MyInt(5)
println(a * "scala")                 //> scalascalascalascalascala
print(“scala”*5)
的计算结果为
print(“scala”*(5))

也就是说,字符串有一个操作符
*
,它接受一个整数参数来重复字符串

要使
5*“scala”
执行与
“scala”*5
相同的操作,需要为以下整数定义一个运算符:

def * (s: String) = s * x   // where x is the integer
在Scala中,
Int
没有这样的操作符,这似乎是有道理的

您可以使用此功能,例如:

class MyInt(x: Int) {
  def * (s: String) = s * x
}

val a = new MyInt(5)
println(a * "scala")                 //> scalascalascalascalascala

Scala没有将
5*“Scala”
作为Int上的一个方法,这很好,因为可以很容易地添加一个

package com.example{
    class RichInt2(val num: Int) {
        def *(str: String): String = {
            str * num
        }
    }

    object RichInt2 {
        implicit def intToRichInt2(n: Int) = new RichInt2(n)
    }
}

import com.example.RichInt2._

object Run extends App {
    print(5 * "scala")
}   

Scala没有将
5*“Scala”
作为Int上的一个方法,这很好,因为可以很容易地添加一个

package com.example{
    class RichInt2(val num: Int) {
        def *(str: String): String = {
            str * num
        }
    }

    object RichInt2 {
        implicit def intToRichInt2(n: Int) = new RichInt2(n)
    }
}

import com.example.RichInt2._

object Run extends App {
    print(5 * "scala")
}   
scala中没有运算符(在其他编程语言的意义上,如C/C++),一切都是方法或对象。scala中没有运算符(在其他编程语言的意义上,如C/C++),一切都是方法或对象。