不同语言特性初步总结

基本的语言特性的总结

运算符

三目运算符
  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')

blogroll

social