疑似bug_中文代码示例之Programming in Scala笔记第九十章

简介: 对Programming in Scala书本中的九十章示例代码进行命名中文化, 发现一个问题. Translate identifiers in sample programs to Chinese, and found an issue.

2018_12_09_scala_

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

源文档库: program-in-chinese/Programming_in_Scala_study_notes_zh

疑似中文命名bug

program-in-chinese/Programming_in_Scala_study_notes_zh. 复现如下. 需要深究:

scala> for ((行1, 行2) <- Array(1,2) zip Array("a", "b"))
     | yield 行1 + 行2
<console>:12: error: not found: value 行1
       for ((行1, 行2) <- Array(1,2) zip Array("a", "b"))
             ^
<console>:12: error: not found: value 行2
       for ((行1, 行2) <- Array(1,2) zip Array("a", "b"))
                 ^
<console>:13: error: not found: value 行1
       yield 行1 + 行2
             ^
<console>:13: error: not found: value 行2
       yield 行1 + 行2
                  ^

scala> for ((l1, l2) <- Array(1,2) zip Array("a", "b"))
     | yield l1 + l2
res1: Array[String] = Array(1a, 2b)

第九章 控制抽象

  def 文件匹配(查询: String, 匹配器: (String, String) => Boolean) =
    for (文件 <- 此处文件; if 匹配器(文件.getName, 查询))
      yield 文件
  
  def 文件名结尾(查询: String) =
    文件匹配(查询, _.endsWith(_))
  
  def 文件名包括(查询: String) =
    文件匹配(查询, _.contains(_))
  
  def 文件名正则匹配(查询: String) =
    文件匹配(查询, _.matches(_))

第十章 组合和继承

import 元素类.元素

object 螺旋 {
  val 空格 = 元素(" ")
  val 角 = 元素("+")

  def 螺旋(边数: Int, 方向: Int): 元素类 = {
    if (边数 == 1)
      元素("+")
    else {
      val 旋 = 螺旋(边数 - 1, (方向 + 3) % 4)
      def 竖条 = 元素('|', 1, 旋.高度)
      def 横条 = 元素('-', 旋.宽度, 1)
      if (方向 == 0)
        (角 在旁 横条) 在上 (旋 在旁 空格)
      else if (方向 == 1)
        (旋 在上 空格) 在旁 (角 在上 竖条)
      else if (方向 == 2)
        (空格 在旁 旋) 在上 (横条 在旁 角)
      else
        (竖条 在上 角) 在旁 (空格 在上 旋)
    }
  }

  def main(参数: Array[String]) = {
    val 边数 = 参数(0).toInt
    println(螺旋(边数, 0))
  }
}

运行效果:

$ scala 螺旋 17
+----------------
|                
| +------------+ 
| |            | 
| | +--------+ | 
| | |        | | 
| | | +----+ | | 
| | | |    | | | 
| | | | ++ | | | 
| | | |  | | | | 
| | | +--+ | | | 
| | |      | | | 
| | +------+ | | 
| |          | | 
| +----------+ | 
|              | 
+--------------+ 

敬请期待后续!

2018-12-09

相关文章
|
分布式计算 Scala Spark
Scala写Spark笔记
Scala写Spark笔记
67 0
|
Scala
中文代码示例之Programming in Scala笔记第七八章
对Programming in Scala书本中的七八章示例代码进行命名中文化. Translate identifiers in sample programs to Chinese.
738 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等兼容版本【适用于任何版本】