加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 09:23:44 所属栏目:安全 来源:网络整理
导读:方法名称中是否可以有尖括号. : class Foo(ind1:Int,ind2:Int){...}var v = new Foo(1,2)v(1) = 3 //updates ind1v1 = 4 //updates ind2 真正的情况显然比这更复杂!!我试图提供一个方便的用户界面. 解决方法 这个回应并不是太严重,只是证明这几乎可以用一些
方法名称中是否可以有尖括号. :

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,3>
v<1> = 10
println(v) // prints <1,10,3>
v<1> // prints: value at 1 is 10

使用这个类,我们可以有一个使用<>而不是()用于“读取”和写入访问.编译器(2.9.0.1)如果>返回值.这可能是错误或滥用的结果.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读