zoukankan      html  css  js  c++  java
  • 2018-12-09 疑似bug_中文代码示例之Programming in 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
    +----------------
    |                
    | +------------+ 
    | |            | 
    | | +--------+ | 
    | | |        | | 
    | | | +----+ | | 
    | | | |    | | | 
    | | | | ++ | | | 
    | | | |  | | | | 
    | | | +--+ | | | 
    | | |      | | | 
    | | +------+ | | 
    | |          | | 
    | +----------+ | 
    |              | 
    +--------------+ 
    

    敬请期待后续!

  • 相关阅读:
    JavaScript 之 变量
    SqlServer 之 系统视图
    SQL Server 2008中的Hints(提示)的简单整理
    SqlServer日常积累(三)
    Asp.net 之页面处理积累(一)
    Android 之Toast
    Android 之开发积累
    go与json
    binder
    DBUS
  • 原文地址:https://www.cnblogs.com/program-in-chinese/p/10509331.html
Copyright © 2011-2022 走看看