Chinaunix首页 | 论坛 | 博客
  • 博客访问: 559307
  • 博文数量: 233
  • 博客积分: 2221
  • 博客等级: 大尉
  • 技术积分: 3184
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-16 14:01
个人简介

瓜瓜派的瓜瓜

文章分类

全部博文(233)

文章存档

2013年(28)

2012年(197)

2011年(8)

分类: Java

2013-02-02 20:31:52

伴生对象
Scala的类,通常都有一个伴生对象,在Scala的帮助文档里,“O”的标记,就代表伴生对象,查的时候要注意。伴生对象有很多增强型功能的方法,Scala的威力,很大部分来自于它,其方法类似于Java的静态方法,Scala没有静态方法。
scala> BigInt.probablePrime(3, util.Random)
res2: scala.math.BigInt = 5
 
scala> BigInt.probablePrime(3, util.Random)
res3: scala.math.BigInt = 7
 
scala> BigInt.probablePrime(3, util.Random)
res4: scala.math.BigInt = 7
probablePrime就是BigInt类的伴生对象的一个方法,随机返回3位(bit)素数,也就是:不是5就是7。

没有参数,且不改变对象本身的方法,通常不加括号
scala> "WOOOoooW".distinct
res5: String = WOo
如:distinct方法

apply方法
很多伴生对象都有apply方法,apply方法用途很广,举例如下:
scala> "Hello"(1)
res6: Char = e
 
scala> "Hello".apply(1)
res7: Char = e
 
scala> "Hello".charAt(1)
res8: Char = e
"Hello"(1)"Hello".apply(1)的简写,最后一种写法是Java的标准写法。

其它
除了方法,Scala也是提供函数的,比如sqrt:
scala> math.sqrt(2)
res10: Double = 1.4142135623730951

阅读(1701) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~