gpt4 book ai didi

scala - 带尖括号 (<>) 的方法

转载 作者:行者123 更新时间:2023-12-03 20:06:33 26 4
gpt4 key购买 nike

是否可以在方法名称中使用尖括号,例如:

class Foo(ind1:Int,ind2:Int){...}
var v = new Foo(1,2)
v(1) = 3 //updates ind1
v<1> = 4 //updates ind2

实际情况显然比这更复杂!!我试图提供一个方便的用户界面。

最佳答案

这个回应并不意味着太严重,只是证明这几乎可以使用一些黑客来实现。

class Vector(values: Int*) {
val data = values.toArray
def < (i:Int) = new {
def `>_=`(x: Int) {
data(i) = x
}
def > {
println("value at "+ i +" is "+ data(i))
}
}
override def toString = data.mkString("<", ", ", ">")
}

val v = new Vector(1, 2, 3)
println(v) // prints <1, 2, 3>
v<1> = 10
println(v) // prints <1, 10, 3>
v<1> // prints: value at 1 is 10

使用这个类,我们可以得到一个使用 <> 的向量。而不是 ()用于“读”和写访问。
如果 >,编译器 (2.9.0.1) 会崩溃返回一个值。这可能是错误或误用的结果 > .

关于scala - 带尖括号 (<>) 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6571810/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com