[转帖]Scala基本语法_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3401 | 回复: 0   主题: [转帖]Scala基本语法        下一篇 
wei.wang
注册用户
等级:少校
经验:1001
发帖:87
精华:0
注册:2013-8-29
状态:离线
发送短消息息给wei.wang 加好友    发送短消息息给wei.wang 发消息
发表于: IP:您无权察看 2013-9-5 10:26:28 | [全部帖] [楼主帖] 楼主

定义变量:

1. Scala 有两种变量,val和var。val类似于 Java里的final变量。一旦初始化了,val就

不能再赋值了。与之对应的,var 如同 Java 里面的非 final 变量。var 可以在它生命周期

中被多次赋值。

2.Java中变量的类型指定在其名称之前,与之不同的是, Scala 里变量的类型在其名称之后,用冒号分隔。

如:

scala> val msg2: java.lang.String = "Hello again, world!"
msg2: java.lang.String = Hello again, world!


定义函数 

3.scala> def max(x: Int, y: Int): Int = { 

if (x > y) x
else y
}
max: (Int,Int)Int


函数的定义用def开始。函数名,本例中是max,跟着是括号里带有冒号分隔的参数列表。

每个函数参数后面必须带前缀冒号的类型标注,因为Scala编译器(还有解释器,但之后我

们将只说编译器)没办法推断函数参数类型。本例中,名叫max的函数带有两个参数,x和

y,都是Int类型。在max参数列表的括号之后你会看到另一个“: Int”类型标注���这个东

西定义了max函数的结果类型:result type。 跟在函数结果类型之后的是一个等号和一对

包含了函数体的大括号。

北京联动北方科技有限公司

4.scala> def greet() = println("Hello, world!") 

greet: ()Unit


当你定义了 greet()函数,解释器会回应一个 greet: ()Unit。“greet”当然是函数名。

空白的括号说明函数不带参数。Unit 是 greet 的结果类型。 Unit 的结果类型指的是函数

没有返回有用的值。Scala 的 Unit 类型比较接近 Java 的 void类型,而且实际上 Java 里

每一个返回 void 的方法都被映射为 Scala 里返回 Unit 的方法。
因此结果类型为 Unit 的

方法,仅仅是为了它们的副作用而运行。在 greet()的例子里,副作用是在标准输出上打

印一句客气的助词。 

5.scala的字符串连接

String使用+操作符的连接。这与你的预期一样。 表达式"Hello, "+"world!"将产生字符串"Hello, world!"。

6.scala里访问数据元素用圆括号而不是方括号

Scala ��,数组以零开始,通过在括号里指定索引访问一个元素。所以  Scala 里数组 steps的第一个元素

是 steps(0),不是像 Java 里的 steps[0]。

7.获取数组长度

args.length 给出了 args 数组的长度

8.自增

i += 1,让i自增一。

注意Java的++i和i++在Scala 里不起作用,要在Scala 里自增,必须写成要么i = i + 1,或者i += 1。

9.循环

var i = 0
while (i < args.length) {
      if (i != 0)
      print(" ")
      print(args(i))
      i += 1
}
println()


注意  Scala 和 Java 一样,必须把 while 或 if 的布尔表达式放在括号里。(换句话说,就

是不能像在 Ruby里面那样在Scala 里这么写:if i < 10。在Scala 里必须写成if (i < 

10)。) 另外一点与 Java 类似的,是如果代码块仅有一个句子,大括号就是可选的,就像

echoargs.scala里面if句子演示的。并且尽管你没有看到, Scala也和 Java一样使用分

号分隔句子的,只是 Scala 里的分号经常是可选的,从而可以释放你的右小手指。

10.foreach
def process(aa:Array[String]){
      aa.foreach(arg => println(arg))
      // aa.foreach((arg:String)=>println(arg))
}


函数体有两句,它们是等价的。

11. 函数文本的语法就是,括号里的命名参数列表,右箭头,然后是函数体。如图
北京联动北方科技有限公司

12.for
def process(aa:Array[String]){
      for(arg <- aa)
      println(arg)
}


与第10条的代码等价




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论