分享

scala初学——基础语法总结

阿飞 发表于 2015-3-14 12:07:53 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 18445
问题导读

1.scala什么情况下不加分号?
2.scala函数是否是对象?
3.Scala如何定义变量和常量?
4.在变量定义中,冒号的作用是什么?
5.scala中方法调用与其它语言有什么不一样的地方?

6.对于没有参数的方法,scala如何处理的?





1.规则
(1)无分号:scala中如果一行只包含一条语句,那么语句后面可以不加分号;
(2)对象的世界:在scala中,任何类型都是对象。
         ——1.toString() // 返回字符串 "1",在这段语句中1是Int对象,它含有toString()方法;
         ——函数也是对象,函数是这个世界的一等公民(这体现了scala中函数式编程的特点)

2.声明值和变量
(1)Scala使用有两种关键字来声明值或变量:
val:不变量,相当于java中的final
var:可变量
在scala中,val使用得更加频繁,Eg:
val answer = 8 * 5 + 2

(2)scala的变量类型通常为缺省,如果不缺省,要使用如下形式
val greeting: String = null
,变量类型使用冒号放在变量名的后面。

3.方法调用
(1)在scala中,方法的调用与java相同,但是又有所扩展。例如:
对象T t=new T();调用方法:t.method(5)与java中相同,但有可以写成:t method 5——即剩略点号和括号。
(2)对于没有参数的方法,scala中可以不写括号,eg:
1.toString()可改写为1.toString;

4.基本数据类型
scala中有java中的基本数据类型,但它们都是对象形式。在使用时,可以自动转换为各自相应的Rich类型,Eg:
1.toString(),其中1是Int类型,但是该类型没有toString()方法,所以调用时由Int类型转换为RichInt类型;类似的有double-RichDouble,long-RichLong等。

5.运算符重载
(1)前面我们了解到scala中,一切都是对象,所以“1+1”实际上是1.+(1),其中+为运算符,我们在这里将其重载为方法:.+(),根据上面的省略规律,1.+(1)可改写为1+1;其它运算符也遵循相似的原则。
(2)但是scala中没有++与--运算,替代它们的是+=1 或 -=1;
(3)apply方法
在scala中普遍使用类似函数调用的语法. 例如,
如果s是一个string类型,那么s(i)是string的第i个字符。其中,s(i)是由s.apply(i)简化而来的。在scala的对象中,apply方法总是可以去掉方法名,eg:


已有(2)人评论

跳转到指定楼层
admln 发表于 2015-3-15 14:29:43
很多重要的没总结到啊
回复

使用道具 举报

随_意 发表于 2015-10-16 11:44:13
admln 发表于 2015-3-15 14:29
很多重要的没总结到啊

还有哪些,麻烦能列出来吗???
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条