scala中的一切皆对象

Scala作为一门纯面向对象的语言,将一切视为对象,包括数字、类型和函数。数字可以像对象一样处理,类型可以被重写,而函数则通过apply方法成为对象。匿名函数可以扩展为Function对象,函数调用也通过面向对象的方式转换。eta-expansion机制使得函数在必要时自动转化为Function类型。
摘要由CSDN通过智能技术生成

scala中的一切皆对象

单纯从面向对象的角度来看待scala,可以说scala就是一门纯面向对象的编程语言,因为在scala中,一切都可以看做是对象。

这点和java是不同的,java中区分基本数据类型和引用类型。可以说scala比Java的面向对象理念还彻底!

数字对象

scala> 5210000 + 1 *1024 / 1
res0: Int = 5211024

scala> (5210000).+(((1).*(1024))./(1))
res1: Int = 5211024

在java中第一行就是基本的运算,但是scala中认为一切皆是对象,所以每个数字都可以被当一个对象来处理,所以写成第二种写法的出来的结论是一样的。

注:如果写成1.+2会被scala编译器当做Double+Int处理。

类型对象

对于Boolean或者其他类型都可以被重写。

abstract class Boolean2 {
   

  //same as: if(cond) t else e
  def ifThenElse[T](t: => T,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值