给Python程序员的Scala入门教程
2018-04-12 本文已影响19人
表现力
快速语法对照
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 |