scala对应python的语法参照

给Python程序员的Scala入门教程

转载自:https://www.jianshu.com/p/59dbb62ab358

快速语法对照

List

  Python Scala
空List a = [] val a = List() //List[Nothing]
Int a = [1,2,3,4,5] val a = List(1,2,3,4,5)
String a = ["a", "b"] val a: List[String] = List("Hello", "World")
不同类型 a = [1,"Hello"] val a = List(1, "Hello") //List[Any]
2维 a = [[1,2,3], [4,5,6]] val a = List(List(1,2,3), List(4,5,6))
索引 a[10] a(10)
截取 a[0:2] a.slice(0,2)
是否为空 not a a==[] len(a)==0 a.isEmpty
append a.append(6) a :+ 6
连接 a.extend([4,5,6]) List.concat(List(1,2,3), List(4,5,6))
反转 a[::-1] a.reverse

HashMap

  Python Scala
新建 map = {"one": 1, "two":2} val map = Map("one"->1, "two"->2)
新建   val map = Map(("one", 1), ("two", 2))
获取 map["one"] map("one")
包含 "one" in map map.contains("one")
添加 map["three"] = 3 map + ("three"->3)
删除 del map["three"] map - "three"
keys map.keys() map.keys
values map.values() map.values
concat map1.update(map2) map1 ++ map2

Set

  Python Scala
新建 s = {1,2,3} val s = Set(1,2,3)
新建 s = set([1,2,3])  
添加 s.add(4) s + 4
删除 s.remove(4) s - 4
是否为空 nor s s.isEmpty
min min(s) s.min
max max(s) s.max
concat s1.union(s2) s1.union(s2)
concat   s1 ++ s2

For loop

  Python Scala
Range for x in range(5): print(x) for(x <- Range(1, 5)) println(x)
List for x in li: print(x) for (x <- li) println(x)
Map for k, v in map1.items(): print(k,v) for ((k,v) <- map1) println(k, v)

Range

Python Scala
range(1, 10) (inclusive, exclusive) Range(1, 10) (inclusive, exclusive)
  1 to 10 (inclusive, inclusive)
  1 until 10 (inclusive, exclusive)
range(10) (exclusive)  
range(1, 10, 2) 1 to 10 by 2
仅支持int 1.0 to 10.0 by 0.5
仅支持int 'a' to 'g' by 2
原文地址:https://www.cnblogs.com/Jaryer/p/13598949.html