偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Scala中的Spiral程序:把代碼都螺旋在一起

開發(fā) 后端
本文節(jié)選自Martin Odersky,Lex Spoon和Bill Venners所著,Regular翻譯的《Programming in Scala》的第十章。Scala是一種針對 JVM 將函數和面向對象技術組合在一起的編程語言。

操練布局庫所有這些元素的好玩兒的方法就是寫一個畫給定數量邊界的螺旋的程序。這個Spiral程序,展示在代碼10.14中,是這么做的:

51CTO編輯推薦:Scala編程語言專題

  1. import Element.elem  
  2. object Spiral {  
  3.  val space = elem(" ")  
  4.  val corner = elem("+")  
  5.  def spiral(nEdges: Int, direction: Int): Element = {  
  6.   if (nEdges == 1)  
  7.    elem("+")  
  8.   else {  
  9.    val sp = spiral(nEdges - 1, (direction + 3) % 4)  
  10.    def verticalBar = elem('|'1, sp.height)  
  11.    def horizontalBar = elem('-', sp.width, 1)  
  12.    if (direction == 0)  
  13.     (corner beside horizontalBar) above (sp beside space)  
  14.    else if (direction == 1)  
  15.     (sp above space) beside (corner above verticalBar)  
  16.    else if (direction == 2)  
  17.     (space beside sp) above (horizontalBar beside corner)  
  18.    else 
  19.     (verticalBar above corner) beside (space above sp)  
  20.   }  
  21.  }  
  22.  def main(args: Array[String]) {  
  23.   val nSides = args(0).toInt  
  24.   println(spiral(nSides, 0))  
  25.  }  
  26. }  
代碼 10.14 Spiral程序

因為Spiral是個帶有合適簽名的main方法的獨立的對象,所以它是個Scala程序。Spiral帶一個命令行參數,一個整數,并且以特定數量的邊界畫一個螺旋。例如,可以像展示在下面的左邊那樣畫一個六邊界的螺旋,或者右邊的那樣更大的螺旋:(略)

【相關閱讀】

  1. Scala中變高變寬的實現:heighten和widen
  2. 學習Scala的定義工廠對象
  3. 如何實現Scala的above,beside和toString
  4. Scala學習:使用組合與繼承
  5. 在Scala中定義final成員

責任編輯:book05 來源: Artima
相關推薦

2018-02-01 21:18:40

戴爾

2020-09-16 11:20:40

PythonBashLinux

2018-07-30 16:04:09

ReactJS代碼HTML

2009-11-06 08:57:31

WCF開發(fā)

2013-08-06 09:49:01

2016-08-12 09:49:06

Intel

2011-01-20 11:42:49

同事

2015-03-05 10:27:56

蘋果IBM

2017-11-15 08:26:52

IntelAMD技術

2015-10-20 16:48:06

AnsibleDocker可擴展設計

2015-02-09 19:49:19

暢捷通

2015-04-22 17:22:05

eBay京東

2016-09-02 16:49:54

APPVR

2014-08-12 09:54:35

Web語言編程語言

2009-11-20 12:09:40

ExchangeVPNWindowsServ

2023-03-30 16:23:09

人工智能AI

2020-06-12 11:08:39

應用程序集成自動化

2019-06-12 06:52:39

操作系統(tǒng)Windows終端

2013-05-31 09:03:47

SkypeLync集成

2019-01-03 13:58:53

人工智能大數據數據分析
點贊
收藏

51CTO技術棧公眾號