@student2018
2018-10-13T07:45:06.000000Z
字数 1333
阅读 971
-
Scala1.提供操作符用于构造HTML表格,例如
Table() | "java" | "scala" || "Gosling" | "Ordersky" ||"jvm" | "dot Net"
应该产出 同
<table><tr><td>java</td><td>scala</td></tr><tr><td>Gosling</td><td>Ordersky</td></tr><tr><td>jvm</td><td>dot net</td></tr></table>
//Table() | "java" | "scala" || "Gosling" | "Ordersky" ||"jvm" | "dot Net"class Table {private var sb = new StringBuilder("<table><tr>")final val TR_END = "</tr>"final val TR_START = "<tr>"final val TB_END = "</table>"def |(col: String) = {sb.append("<td>")sb.append(col)sb.append("</td>")this}def ||(row: String) = {sb.append(TR_END)sb.append(TR_START)|(row)}def print = println(sb.toString() + TR_END + TB_END)}object Table extends App {def apply() = new Table()// Table() | "java" | "scala" || "Gosling" | "Ordersky" || "jvm" | "dot Net" print//一行代码完成一个字符串中字母出现的次数val str = "hello world"println(str.aggregate(Set[Char]())(_ + _, _ ++ _))println(str.foldLeft(Map[Char, Int]())((m, c) => m + (c -> (m.getOrElse(c, 0) + 1))))def numsFrom(n: Int): Stream[Int] = n #:: numsFrom(n + 1)val tenMore = numsFrom(10)tenMore.take(5).foreach(println)import math._val powers = (0 until 1000).view.map(pow(10, _))println(powers(3))def indexes(str: String) = {str.zipWithIndex.foldLeft(Map[Char, List[Int]]()) {(m, ci) =>m + (ci._1 -> (m.getOrElse(ci._1, List[Int]()):::List(ci._2)))}}println(indexes("Mississippi"))}