一天一段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))

println(mulBy1(3)(8))
println(mulBy2(3)(8))

def myUntil1(myCondition: =>Boolean)(myBlock: =>Unit)
{
  if(!myCondition)
  {
    myBlock
    myUntil1(myCondition)(myBlock)
  }
}

var x=10
myUntil1(x==0)
{
  x-=1
  println(x)
}

def myUntil2(myCondition: =>Boolean)(myBlock: ()=>Unit)
{
  if(!myCondition)
  {
    myBlock()
    myUntil2(myCondition)(myBlock)
  }
}

x=10
myUntil2(x==0){()=>
  x-=1
  println(x)
}

val add : Int => Int =>Int = x => y => x + y
println(add(1)(2))

val add2:(Int) =>( Int =>Int )= (x) => (y => x + y)
println(add2(1)(2))

}

本文作者:linger

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

时间: 2024-12-19 08:27:26

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

一天一段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

一天一段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 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 //特质的基本使用 trait Logger { def log(msg:String) //不定义,抽象方法 } class ConsoleLogger extends Logger { def log(msg:String){println(msg)} //重写抽象方法不需要override } class Animal {} impor

一天一段scala代码(十五)

为了更好的驾驭spark,最近在学习scala语言特性,主要看<快学scala>,顺便把一些自己认为有用的代码记下来. package examples object Example15 { //注解可以在程序中的各项条目添加信息,这些信息可以被编译器或外部工具处理. //下面是一个使用注解,指导编译器编译,为了供java方便调用. import scala.annotation.varargs @varargs def process(args:String*) {} //则编译器生成jav

一天一段scala代码(十六)

为了更好的驾驭spark,最近在学习scala语言特性,主要看<快学scala>,顺便把一些自己认为有用的代码记下来. package examples object Example16 { //scala操作XML //scala本身自带了强大操作XML的功能,当然也可以调用java的包 //该部分没什么技术门槛,只是较为繁杂,用的时候再学习 //http://booksites.artima.com/programming_in_scala_2ed/examples/html/ch28.h

一天一段scala代码(七)

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

一天一段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