作者sbrhsieh (sbr)
看板PLT
标题Re: [问题] Scala 的 Covariant/Contravariant/Inv …
时间Wed Mar 18 19:23:59 2009
※ 引述《godfat (godfat 真常)》之铭言:
: : 我发现我没有办法写出一个 showValue method 可以让我单纯地把任一个 Value
: : instance 所持有的 value 输出,这是我欠缺某观念,所以我写不出来?还是?
: : 这一点是我不满意 scala 关於 subtyping variance 语法的原因之一。
: 虽然可能不是你想的那样,不过:
: class Value[+T](init:T) {
: private val x:T = init
: def get:T = { x }
: def set[U >: T](x:U): Value[U] = new Value[U](x)
: }
: def showValue(obj:Value[Any]) {
: println(obj.get);
: }
: 这边的重点大概是,value 必须是 immutable 的。
: 至於这样效能会不会很差,也许吧,我不知道 XD
: 可以参考这篇:一个 immutable 的 stack.
: http://www.scala-lang.org/node/129
: functional programming 就是尽量避免 state.
谢谢你的解说。我只是觉得有时候 Value 就不是我写的,虽然他当初被设计成
mutable object,但是当我没有要变更它的状态时,我没有办法以我想要的方式
去使用,这让我比较不能接受。
关於 functional programming,我自己私下有摸 Scheme 与 Erlang,刚开始很
不习惯。有空我也来摸一下 Haskell 看看。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.129.21