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++),一切都是方法或对象。