赞
踩
注意几个点:
1.Scala执行过程中都是有返回值的Unit也是一种返回值
2.Unit表示的无返回值,例如Println底层使用的就是Unit返回值
3.条件控制语句也是有返回值的
4.Unit的返回值打印就是()
val age = 30
val result = if (age == 30) {
println(s"年龄是${age}")
}
println(result) //()
}//谁会没事怎么写
上述方式没有指定result类型,
所以,以满足条件的最后一行代码的执行结果 作为返回值
如果将println变为 100
那么result就是100
关于result的数据类型;Scala是强数据类型,在编译阶段就需要确定其数据类型;此时数据类型有两种取值,Unit和String;至于取哪一种看家谱图。看其通用类型 Any
**
**
如果指定返回值类型为Unit,那么返回值就是(),不管里面内容是什么
关于强数据类型的流程控制的返回值类型,取多个分支的通用数据类型;
**
**
–条件控制返回值 为条件成立的最后一行的代码值
–其返回值的类型,取多个分支的通用数据类型;
–数据类型的获取是在编译阶段,非运行阶段,因此取多个分支的通用数据类型;
因为是通用数据类型,即便返回值真的是1,也无法对数据进行加一操作;
**
**
//xxx ? a:b
var c = if (age == 30 ) println(s"${age}为30") else println("age不是30")
println(c) //未指定返回值,最后一行为println 所以是Unit类型,值为()
–scala中没有三元运算符
–scala没有加加减减
scala只有 forEach循环,没有Java的fori循环
**
**
scala中没有双冒号,但是将Java中后者的那个冒号进行修改, <- 表示意思就是将集合中每一个元素指向Object对象;
var array = 1 to 5 //从1 到5
for (elem <- array) { //直接 array.for回车即可;
println(elem)
}
创建集合的方式
var array = 1 to 5 //包含5
var array1 = 1 until 5 //不包含5 until等价Range(1,5)
方式:增加if即可在循环后面
for (elem <- carray if elem>5) {
println(elem)
}
/**
* 6
* 7
* 8
* 9
*/
3. 循环幅度 var array2 = 1 to 100 by 10 for (elem <- array2) { println(elem) } /** * 11 * 21 * 31 * 41 * 51 * 61 * 71 * 81 * 91 */
等价Range(1,100,2) 和python同
**
**
// TODO 引入变量
for(i <- 1 to 3){
var j =i+1
println(j)
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。