Scala学习笔记(一)

最近一个偶然的机会让我接触到了这个神奇的语言,这个语言的是完全面向对象的,而且是函数式的,他的作者的 目标是设计一种强大而又漂亮的语言( a very powerful but at the same beautifully simple language ), 同时它也可以运行在JVM上(之前可以运行在.net上,但现在不支持 ╮(╯▽╰)╭)。

他可以很轻松的调用Java的包,也可以被Java调用,所以Java程序员可以很轻松的用这个语言来实现他们目前的工作,但是如果把它当做Java使用的话,对他来说反而大材小用了。

面向对象现在应该不需要说太多了,大家基本上能明白是哪些东西,说说函数式编程吧,对于.net程序员可能能够更轻松的理解。

例如一个现在有一个需求,需要你求一组数字的和,你会怎么做?

int sum=0; 

for(int i=begin;i<=end;i++)

{

 sum += i;

 当然有人会说我可以使用求和公式计算,这里就不要这么较真啦。

现在需求要求你添加一个函数,将 求和 变为乘积,你怎么做?

你可以复制一个方法将 += 改为*= 没错, 可以这么做,但是可以将函数当做参数传入例如:(C#代码)

private int foreach(int begin, int end, func<int,int,int> fun)

{

int temp=0; 

for(int i=begin; i<=end; i++)

{

 temp = fun(temp, i);

return temp; 

如果是求和则可以使用 int sum = foreach(0,100,(sum,i)=> return sum+i);

如果是求乘积则可以用  int sum = foreach(0,100,(sum,i)=> return sum*i);

相对来说要简化很多代码,这里没有给出Java代码是因为个人感觉这种代码用Java实现起来太麻烦,因为没有深入接触过Java,如果有错还请原来我的无知。。。 

那么这门语言难不难?好不好学?简单的说难者不会会者不难 ╮(╯▽╰)╭ 好吧这是废话,但是这门语言目前国内的资料还是比较少的,所以希望大家可以一起学习吧~

这里还有从网上抄到的一段话:注意,这里是说的团队

那么,如何能看出Scala在你们的团队中会是很“简单”还是很“难”呢?

  • 如果你的公司在JavaOne大会,或OSCON,Strangle Loop,或QCon大会上有出席发言的人:Scala对于你们来说会很简单
  • 如果吃饭时间你们还在讨论如何从一个普通程序员成长成高级程序员:Scala对你们来说会很难
  • 如果需要的话,你可以用NotePad编程:容易
  • 当看到”Zed Shaw”时,你的程序员面无表情或连说3声“万福玛利亚!”:Scala==难
  • 程序员在Twitter上关注Dean Wampler:Scala 简单
  • 你的程序员9:15到公司,晚上不看有没有邮件:难

现在你们知道了。我完全同意这样的观点:对于水平一般的团队,Scala很难。并不是它本身很难,而是因为它在水平一般的团队中不会产生那种由技术很好的人组成的团队中产生的短期或长期的益处。 

根据这句话个人认为目前还不具备大规模使用的环境,而且传说3.0的时候会有很大的变动,所以这门语言短时间内在国内应该不会被太多的公司使用,但是学习这门语言可以改变很多我们的想法,让我们更好的学习和使用Scala与其他的语言,所以还是强烈建议学习的,一起加油吧~

我的学习资料是 Scala 编程(Programming in Scala),目前网上只能下到英文版和中文版的前几章:

英文版:http://ishare.iask.sina.com.cn/f/23567776.html (英文版除了第二版了,中文版还是第一版)

中文版样章:http://ishare.iask.sina.com.cn/f/22419757.html

当然这本书貌似不是很火,如果你周围有图书馆的话,完全可以去图书馆找找 


=======================

发现自己的表达能力为什么越来越差了?还是说完全没好过。。。- -b  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值