Scala学习笔记(一)简洁之道

多年来一直使用Java来作为主要使用的语言,主要是因为它的代码通常可读性很强,对于大型的企业级项目,体现在代码和众多接口中的设计,能良好的反应项目的架构。但是,不得不承认,Java并不是一门纯粹的面向对象语言,static的存在以及基本数据类型的支持,都有悖OO的理念。除此之外,越来越感觉到,使用Java和丰富的资源虽然几乎能开发出任何目的的程序,但其繁琐的代码量,非常让人恼火。

 

在众多更加简洁的语言问世的今天,我遇到了Scala,只是抱着试一试的目的开始学习和使用它,确实被它的简洁而深深吸引。这里列举一个精彩的例子:

import java.util._

class DateHelper(number: Int){
	def days(when: String) : Date = {
		var date = Calendar.getInstance()
		when match{
			case DateHelper.ago => date.add(Calendar.DAY_OF_MONTH, -number)
			case DateHelper.from_now => date.add(Calendar.DAY_OF_MONTH, number)
			case _ => date
		}
		
		date.getTime()
	}
}

object DateHelper{
	val ago = "ago"
	val from_now = "from_now"
	
	implicit def converInt2DateHelper(number : Int) = new DateHelper(number)
}

import DateHelper._

//sample to use it
val past = 2 days ago
val future = 5 days from_now

println(past);
println(future);

 

这里发生的事情是整型“2” 和 “5” 被隐式的转换成了DateHelper类的实例,然后利用省略括号的Scala语法特点,调用了DateHelper的days方法,并分别传入了字符串"ago"和"from_now"作为方法参数。在days方法中利用正则匹配分别计算了时间的偏移,并把最终偏移后的时间结果返回。

 

单从最后的调用例子来看,Scala可以把对象构建、方法的调用和传参像几乎自然语言那样去理解,也隐约能理解到为什么设计者当初创造Scala的时候是有着怎样的一番考虑了。虽然以后不一定会使用到Scala来做项目,但还是决定继续学习和使用Scala来写一写程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值