一天一段scala代码(二)

为了更好的驾驭spark,最近在学习scala语言特性,主要看《快学scala》,顺便把一些自己认为有用的代码记下来。

package examples

import scala.util.control.Breaks._

object Example2 {
  def main(args: Array[String])
  {
    //if else 语法
    val s = if(1==1) 1 else 0
    println(s)

    //代码块
    val d = {
      val s=1+1
      val g = s*2
      g
    }
    println(d)

    //包含上界
    for(i<-0 to 10)
    {
      print(i+",")
    }
    println()

    //不包含上界
    for(i<-0 until 10)
    {
      print(i+",")
    }
    println()

    //普通循环不能用break.要用break必须要用breakable
    breakable{
      for(i<-0 until 10)
      {
        if(1 == 1)
        {
          println("break!")
          break;
        }
      }

    }

    //多层嵌套的一种写法
    for(i<-1 to 3;j<-1 to 3) print((i,j))
    println()
    for(i<-1 to 3;j<-1 to 3 if i!=j) print((i,j))
    println()
    for(i<-1 to 3;from=4-i;j<-from to 3) print((i,j))
    println()

    //返回一个vector
    val numVector = for(i<-1 to 10) yield i%3
    println(numVector)
  }
}
1
4
0,1,2,3,4,5,6,7,8,9,10,
0,1,2,3,4,5,6,7,8,9,
break!
(1,1)(1,2)(1,3)(2,1)(2,2)(2,3)(3,1)(3,2)(3,3)
(1,2)(1,3)(2,1)(2,3)(3,1)(3,2)
(1,3)(2,2)(2,3)(3,1)(3,2)(3,3)
Vector(1, 2, 0, 1, 2, 0, 1, 2, 0, 1)

本文链接:http://blog.csdn.net/lingerlanlan/article/details/43238055

本文作者:linger

时间: 2024-10-19 01:43:09

一天一段scala代码(二)的相关文章

一天一段scala代码(五)

一天一段scala代码(四) 为了更好的驾驭spark,最近在学习scala语言特性,主要看<快学scala>,顺便把一些自己认为有用的代码记下来. package examples class Person { val publicVal = 1 //自动生成getter var publicVar = 2 //自动生成getter和setter //自定义getter和setter private var privateAge=0 def age = privateAge //getter

一天一段scala代码(十二)

为了更好的驾驭spark,最近在学习scala语言特性,主要看<快学scala>,顺便把一些自己认为有用的代码记下来. package examples object Example12 extends App{ def mulBy1(factor:Double)=(x:Double)=>factor*x def mulBy2(factor:Double)(x:Double)=factor*x val triple = mulBy1(3) println(triple(8)) print

一天一段scala代码(七)

为了更好的驾驭spark,最近在学习scala语言特性,主要看<快学scala>,顺便把一些自己认为有用的代码记下来. package examples class Angela { //包可见性 这里规定了这个方法只能再examples包内可见 //当时在spark的mllib做二次开发时遇到这个坑,mllib有些函数是包可见的,其他包访问不了. //解决方法是将自己的程序起名跟那些函数所在的包一致,比如org.apache.spark.mllib.xxxx,这样就可以访问mllib的一些类

一天一段scala代码(十四)

为了更好的驾驭spark,最近在学习scala语言特性,主要看<快学scala>,顺便把一些自己认为有用的代码记下来. package examples object Example14 extends App{ var ch='9' var sign= ch match{ case '+' => 1 case '-' => -1 case _ if Character.isDigit(ch) => Character.digit(ch,10) //守卫模式,加上条件 cas

一天一段scala代码(十一)

为了更好的驾驭spark,最近在学习scala语言特性,主要看<快学scala>,顺便把一些自己认为有用的代码记下来. package examples class Fraction(n:Int,d:Int) { private val num =n private val den=d def *(other:Fraction) = new Fraction(num*other.num,den*other.den) //重载称号操作符 } object Fraction { def apply

一天一段scala代码(四)

为了更好的驾驭spark,最近在学习scala语言特性,主要看<快学scala>,顺便把一些自己认为有用的代码记下来. package examples object Example4 { def main(args: Array[String]) { //不可变Map val scores= scala.collection.immutable.Map("linger"->1,"angela"->2) //scores+=("la

一天一段scala代码(三)

为了更好的驾驭spark,最近在学习scala语言特性,主要看<快学scala>,顺便把一些自己认为有用的代码记下来. package examples import scala.collection.mutable.ArrayBuffer object Example3 { def main(args: Array[String]) { val start = System.currentTimeMillis println("took " + (System.curre

一天一段scala代码(十三)

为了更好的驾驭spark,最近在学习scala语言特性,主要看<快学scala>,顺便把一些自己认为有用的代码记下来. package examples object Example13 extends App{ //可变集合和不可变集合 val iMap = scala.collection.immutable.Map("1"->2,"2"->2) println(iMap) println(iMap+("3"->

一天一段scala代码(九)

为了更好的驾驭spark,最近在学习scala语言特性,主要看<快学scala>,顺便把一些自己认为有用的代码记下来. package examples import scala.io.Source object Example9 extends App { val source = Source.fromFile("/home/linger/data/hive_data","UTF-8") val lines = source.getLines() f