中文代码示例之Programming in Scala笔记第七八章

简介: 对Programming in Scala书本中的七八章示例代码进行命名中文化. Translate identifiers in sample programs to Chinese.

2018_11_27_scala_

续前文:

同样仅节选有意思的例程部分作演示之用. 源文档仍在: program-in-chinese/Programming_in_Scala_study_notes_zh

第七章 内置控制结构

7.8中改为函数式风格的乘法表:

def 创建行序列(行: Int) =
  for (列 <- 1 to 10) yield {
    val 乘积 = (行 * 列).toString
    val 缩进 = " " * (4 - 乘积.length)
    缩进 + 乘积
  }

def 创建行(行: Int) = 创建行序列(行).mkString

def 乘法表() = {
  val 表序列 =
    for (行 <- 1 to 10)
    yield 创建行(行)

  表序列.mkString("\n")
}

第八章 函数和闭包

8.7 闭包

在运行时, 闭包牵涉的变量值可能改变, 关键在于该闭包创建的时刻变量值如何:

scala> def 创建累加器(增量: Int) = (数: Int) => 数 + 增量
创建累加器: (增量: Int)Int => Int

scala> val 累加器1 = 创建累加器(1)
累加器1: Int => Int = 
$$
Lambda$1168/1847678962@36f59005

scala> val 累加器9999 = 创建累加器(9999)
累加器9999: Int => Int = 
$$
Lambda$1168/1847678962@4a83d668

scala> 累加器1(10)
res25: Int = 11

scala> 累加器9999(10)
res26: Int = 10009

感觉书中例程还是偏IT, 本可以更接近日常, 比如这个:

val 首参数 = if (参数.length > 0) 参数[0] else ""

val 伙伴 =
  首参数 match {
    case "甜酱" => println("辣酱")
    case "羊肉" => println("泡馍")
    case "皮蛋" => println("豆腐")
    case _ => println("啥?")
  }
println(伙伴)

2018-11-27

相关文章
|
分布式计算 Scala Spark
Scala写Spark笔记
Scala写Spark笔记
67 0
|
Scala
疑似bug_中文代码示例之Programming in Scala笔记第九十章
对Programming in Scala书本中的九十章示例代码进行命名中文化, 发现一个问题. Translate identifiers in sample programs to Chinese, and found an issue.
755 0
|
缓存 Scala
中文代码示例之Programming in Scala笔记第四五六章
对Programming in Scala书本中的四五六章示例代码进行命名中文化. Translate identifiers in sample programs to Chinese.
593 0
|
Scala Java
中文代码示例之Programming in Scala学习笔记第二三章
对Programming in Scala书本中的二三章示例代码进行命名中文化. Translate identifiers in sample programs to Chinese.
1058 0
|
Java Scala API
Scala Symbol笔记
Symbol This class provides a simple way to get unique objects for equal strings. Since symbols are interned, they can be compared using reference equality. symbols可以作为一种快速比较字符串的方式,如果字符串的值相同,则返回的symbol变量具有相同的引用地址。
1183 0
|
Java Scala C++
Scala语法笔记
        JAVA中,举例你S是一个字符串,那么s(i)就是该字符串的第i个字符(s.charAt(i)).Scala中使用apply的方法 JAVA与C++的?:操作符 等同于Scala的 if ( x > 0)  1 else -1 x>0 ? 1:...
997 0
|
Scala
Scala笔记
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/46746281 1、伴生...
826 0
|
SQL 消息中间件 分布式计算
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
666 0
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】