一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

【SCALA】1、我要開(kāi)始學(xué)習(xí)scala啦

 印度阿三17 2019-06-09

?因?yàn)閟cala也是基于jvm上運(yùn)行的,所以能跑java,原則上就能跑scala

1、國(guó)際慣例,先來(lái)個(gè)hello world走走

package demo1

//object之下全為靜態(tài),scala沒(méi)有static這玩意
object HelloWorld {

  //def 函數(shù)定義  args參數(shù) 后面接冒號(hào)然后是參數(shù)類型java反著來(lái)的,如果是java,那么就是String args[]
  //最后main() 之后接 : 然后是這個(gè)函數(shù)反饋的類型 Unit代表沒(méi)有反饋類型
  def main(args : Array[String]) : Unit = {
    //進(jìn)去之后,該怎么樣就怎么樣。。。。
    //還有scala可以不用寫(xiě)分號(hào)哦,真是為國(guó)家省布料。。。。
    println("hello world")
  }

}

?

?

?

2.好,然后我們簡(jiǎn)單寫(xiě)幾個(gè)程序,標(biāo)識(shí)scala的基礎(chǔ)入門(mén)吧

?文件操作

?

package demo1

import java.io.File

import scala.io.Source

object FileDemo2 {

  def widthOfLength(s : String) = s.length.toString.length

  def fileLines(file : File) = Source.fromFile(file).getLines().toList
  //靜態(tài)變量
  val filesHere = new File("./src/demo1").listFiles()

  def grep(pattern : String) =
  //這里用()或者 {}都可以
    for {
      //遍歷所有文件
      file <- filesHere
      if file.getName.endsWith(".scala");
      //遍歷這個(gè)文件的所有行
      line <- fileLines(file)
      if line.trim.matches(pattern)
    } {
      println(file   " : "   line.trim)
    }

  def main(args: Array[String]): Unit = {

    if(args.length > 0) {

      val lines = Source.fromFile(args(0)).getLines().toList

      val longestLine = lines.reduceLeft((a, b) => if (a.length > b.length) a else b)

      val maxWidth = widthOfLength(longestLine)

      for(line <- lines) {
        val numSpace = maxWidth - widthOfLength(line)
        val padding = " " * numSpace
        println(padding   line.length   " | "   line)
      }
    } else {
      Console.err.println("Please enter filename")
    }

    grep(".*main.*")


  }

}

這個(gè)功能用java實(shí)現(xiàn),沒(méi)個(gè)幾百行估計(jì)搞不定。。。

光是文件輸入輸出的io操作代碼,什么File = new File 什么InputStream,什么ReaderBuffer一堆的估計(jì)就要寫(xiě)個(gè)十幾行

然后這里scala比較驚喜的是循環(huán),特別是for循環(huán),那是真的比較強(qiáng)大了

?

?3.最后我們來(lái)看看for這個(gè)循環(huán)再scala中的應(yīng)用為啥那么強(qiáng)大吧,特別是yield的使用,真是很方便了,直接避免了我們java中再for循環(huán),或者while循環(huán)等等需要保存對(duì)象的時(shí)候的list.add操作,這里直接準(zhǔn)備好丟給你,就看你要不要

要的話加個(gè)yield,不要就不加,很方便

package demo2

class FileDemo2 {

  def makeRowSeq(row : Int) =
    for(col <- 1 to 10) yield {
      val prod = (row * col).toString
      val padding = " " * (4 - prod.length)
      padding   prod
    }

  def makeRow(row : Int) = makeRowSeq(row).mkString

  def multiTable() = {
    val tableSeq =
      for(row <- 1 to 10) yield {
         makeRow(row)
      }

    tableSeq.mkString("\n")
  }

}

object FileDemo2 extends App {

  implicit def add(x : Int) = 2 * 2
  for(season <- List("fall", "winter", "spring")) {
    println(season   ": ")
  }

  var a = 'asdasda
  val a1 = "asdasda"
  println(a   " ,nameis:"   a.name   s", value is:$a1 -> $a")

  println(2)

  val fileDemo2 = new FileDemo2
  val listDemo2 = fileDemo2.multiTable()
  println(listDemo2)
}

?

?

?

?

?好啦,今天的學(xué)習(xí)就到這了,目前來(lái)看scala很像java的簡(jiǎn)化版本,畢竟是后java出來(lái)的,有些簡(jiǎn)化很正常,目前還沒(méi)發(fā)現(xiàn)scala的獨(dú)到的地方

當(dāng)然除了它寫(xiě)代碼確實(shí)很簡(jiǎn)潔,java幾百行,這個(gè)用scala可能就十幾行,或者幾十行,代碼量至少縮小一倍吧

?

后續(xù)學(xué)習(xí),我們接著來(lái)挖掘scala吧

?

來(lái)源:http://www./content-4-234401.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    人妻一区二区三区在线| 熟女中文字幕一区二区三区| 欧美尤物在线视频91| 国产一级特黄在线观看| 午夜国产精品国自产拍av| 国产免费操美女逼视频| 精品国产亚洲区久久露脸| 香港国产三级久久精品三级| 少妇淫真视频一区二区| 好吊色欧美一区二区三区顽频 | 九九热这里有精品20| 97人妻精品一区二区三区男同| 国产精品亚洲精品亚洲| 黑鬼糟蹋少妇资源在线观看| 一区二区不卡免费观看免费| 亚洲一区二区亚洲日本| 精品欧美一区二区三久久| 欧美日韩综合综合久久久| 欧美一区二区三区播放| 在线免费国产一区二区三区| 亚洲一区二区三区国产| 国产欧美日韩在线精品一二区 | 黄片免费观看一区二区| 亚洲黑人精品一区二区欧美| 亚洲一区二区三区四区| 亚洲综合香蕉在线视频| 国产综合一区二区三区av| 五月天综合网五月天综合网| 九九热这里只有精品视频 | 日韩综合国产欧美一区| 精品一区二区三区三级视频| 国产亚洲系列91精品| 午夜精品福利视频观看| 青青久久亚洲婷婷中文网| 精品人妻一区二区三区免费| 成年午夜在线免费视频| 蜜桃传媒在线正在播放| 久久99精品日韩人妻| 国产日产欧美精品视频| 成人精品一区二区三区综合 | 日韩高清一区二区三区四区 |