首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala类可以在创建后修改吗?

Scala类可以在创建后修改吗?
EN

Stack Overflow用户
提问于 2011-08-01 15:25:07
回答 2查看 144关注 0票数 3

具体地说,我在这里考虑了与6.3等效的功能:

http://www.siafoo.net/article/52

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-01 16:11:21

Scala是一种静态语言,因此所有代码都应该在编译时存在。但是,您可以使用方法模拟python特性,将方法添加到现有类中,而无需修改类本身。但是,您不能更改现有方法。示例:

代码语言:javascript
复制
class Foo( val i: Int )

class RichFoo( f: Foo ) {
  def prettyPrint = "Foo(" + i + ")"
}

implicit def enrichFoo( f: Foo ) = new RichFoo(f)

val foo = new Foo( 667 )

println( foo.prettyPrint ) // Outputs "Foo(667)"
票数 5
EN

Stack Overflow用户

发布于 2011-08-01 15:31:22

你可以这样做

代码语言:javascript
复制
class Class {
  var method = () => println("Hey, a method (actually, a function bound to a var)")
}

val instance = new Class()
instance.method()
// Hey, a method (actually, a function bound to a var)

val new_method = () => println("New function")
instance.method = new_method

instance.method()
// New function

创建实例后,无法更改方法本身。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6895334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档