运算符
三目运算符
Java和C++
x >0 ? 1:-2
Scala
val originalvaule = if (x>0) 1 else -1
Python
st = 1 if x> 0 else -2
操作符: 优先级和结合性(顺序)
一元操作符、二元操作符、三元操作符
前置操作符、中置操作符、后置操作符
功能: 赋值操作符
表达式和语句
Java和C
表达式 语句
表达式有值 3+6
语句执行动作 if x >0
Scala
表达式和语句--几乎所有构造出的语法结构都有值
Python
表达式:表达式操作符
语句:
赋值语句+ 隐式赋值:import,from,def,class,for,函数参数
try/except/finally:捕捉异常
控制结构
Java 和C 中的赋值
x=y =1;
Scala中的赋值
x=1
y=1
控制结构
if语句等
Java和C
switch(expression){
case value ://语句
break; //可选
case value : //语句
break; //可选
//你可以有任意数量的case语句
default : //可选//语句
}
Scala没有
模式匹配
Python
if elif
循环-遍历-迭代
Java
for (Map.Entry<String, String> entry : map.entrySet())
Scala
方式一 for (name <- names) 使用<-用于循环语义; 相较Java,语法层面来看只是将 :换成<-
方式二:采用函数的方式处理 foreach map
val nameList=scores.map(_._1) nameList.foreach((x:String)=>print(x+" "))
Python
for item in s: 遍历s中的元素
for i , value in enumerate(s)
R语言
for(v in vals)
推导式
Java
for (int j = 0; j < integers.length; j++)
Scala- for推导式
for(i <- 1 to 10 ) yield i%3
生成器表达式(Generator Expression) 1 to 10 1 until 10
yield
scala提供了保护式(Guard)守卫
for中的if
Python
列表推导式 [ ] 字典推导式 存在 key 和 value,使用的是 {} 集合推导式
gen = [ x **2 for x in range(10)]
## 生成器有状态,使用过之后注意-构造可迭代遍历的对象
生成器表达式 ( ) gen =( x**2 for x in range(10))
生成器
def _make_gen():
fro x in range(10):
yield x**2
gen = _nake_gen()
初始化
声明变量和初始化
Java
Scala -- 惰性求值
Python
异常处理机制
Java
try catch finally
throw throw exception
try{}
catch(ArrayIndexOutOfBoundsException e){ }
Scala
try { println("运行try")}
catch {
case e: Exception => {println("获取异常信息") }
}
finally{ println("try结束后的处理,如关闭连接") }
Python
raise
raise RuntimeError('testError')