FAQ
用instanceof怪怪的, 下面如何?
//trait Computer{
// type A
// def computer(x:A, y:A):A
//}
//
//trait Plusable {
// def +(p:Plusable):Plusable
//}
//
//object Adder extends Computer {
// type A = Plusable
// override def computer(x:A, y:A):A = x + y
//}

trait Computer[A]{
   def computer(x:A, y:A):A
}

trait Plusable {
   def +(p:Plusable):Plusable
}

object Adder extends Computer[Plusable]{
   override def computer(x:Plusable, y:Plusable):Plusable = x + y
}



在 2014年4月29日 上午6:10, <scalacn@googlegroups.com>写道:
今日主题摘要

网上论坛: http://groups.google.com/group/scalacn/topics

- scala泛型疑问,为什么下面这段代码无法编译 <#145aa641d5b75211_group_thread_0> [5 条更新]

scala泛型疑问,为什么下面这段代码无法编译<http://groups.google.com/group/scalacn/t/c00ca3eda62da1c8>

杨博 <pop.atry@gmail.com> Apr 27 10:58PM -0700

草原哥的写法不错。我再补充个更符合Scala惯例的非侵入做法,不需要修改A的实现,而只要给A添加能隐式找到的助手类就可以了:

def compute[A](x:A, ...更多内容<http://groups.google.com/group/scalacn/msg/7f94161dbb6d3c44>

返回页首 <#145aa641d5b75211_digest_top>


Nicholas Ren <nicholas85211@gmail.com> Apr 28 02:39PM +0800

草原老师的方案1,在我这儿还是编译不通过:

class Adder[A <: Plusable] extends Computer[A] {
def compute(x: A, y: A): A = x + y //此行出错
}


type mismatch; ...更多内容<http://groups.google.com/group/scalacn/msg/24b51f1907f659f5>

返回页首 <#145aa641d5b75211_digest_top>


杨博 <pop.atry@gmail.com> Apr 28 03:05PM +0800

在 2014年4月28日 下午2:39,Nicholas Ren <nicholas85211@gmail.com>写道:
草原老师的方案1,在我这儿还是编译不通过:
class Adder[A <: Plusable] extends ...更多内容<http://groups.google.com/group/scalacn/msg/ce597f674ee8d5f0>
返回页首 <#145aa641d5b75211_digest_top>


Caoyuan <dcaoyuan@gmail.com> Apr 28 04:56PM +0800

杨博的改法能编译就好。我只是随手写了一下代码说思路,没有真正去测过的 :-)


...更多内容 <http://groups.google.com/group/scalacn/msg/432c363b06440758>

返回页首 <#145aa641d5b75211_digest_top>


Nicholas Ren <nicholas85211@gmail.com> Apr 28 06:02PM +0800

发一个最终work的版本:



--
Nicholas Ren (任晓君)

ThoughtWorks | Xi'an | GMT+8


On Monday, April 28, 2014 at 4:56 PM, Caoyuan wrote:

...更多内容 <http://groups.google.com/group/scalacn/msg/4965ab3f888a8251>

返回页首 <#145aa641d5b75211_digest_top>

--
您收到此邮件是因为您订阅了Google网上论坛中的“Scala中文社区”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到scalacn+unsubscribe@googlegroups.com
要发帖到此论坛,请发送电子邮件至scalacn@googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout。
--
您收到此邮件是因为您订阅了 Google 网上论坛的“Scala中文社区”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到scalacn+unsubscribe@googlegroups.com
要向此网上论坛发帖,请发送电子邮件至 scalacn@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/d/optout。

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupscalacn @
postedMay 13, '14 at 11:05a
activeMay 13, '14 at 11:05a
posts1
users1

1 user in discussion

张博: 1 post

People

Translate

site design / logo © 2019 Grokbase