Scala
chengqiuming
这个作者很懒,什么都没留下…
展开
-
Scala Range与Stream
一 Rangescala>1 to 10res20: scala.collection.immutable.Range.Inclusive=Range1 to 10scala>1 to 10 by 2res21: scala.collection.immutable.Range= inexact Range1 to 10 by 2scala>(1 to 10).t原创 2017-11-22 11:50:28 · 690 阅读 · 0 评论 -
Scala基础语法之变量
一 三种变量修饰符1、val:定义常量2、var:定义变量3、lazy val:定义惰性求值常量注意:可以不显示指定变量类型,因为Scala会自动进行类型推导。 二 举例F:\scala\command>scalaWelcome to Scala2.12.1(JavaHotSpot(TM)64-BitServer VM,Java1.8.0_101).Typ原创 2017-11-22 11:47:38 · 257 阅读 · 0 评论 -
Scala类型
一 Scala类型体系 二 实例C:\Users\lenovo>scalaWelcome to Scala2.12.1(JavaHotSpot(TM)64-BitServer VM,Java1.8.0_101).Typein expressions for evaluation.Ortry:help.scala> val a:Byte=10a:Byte=10原创 2017-11-22 11:47:50 · 308 阅读 · 0 评论 -
Scala环境搭建
一 Scala相关软件下载地址Java JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.htmlScala JDK:http://www.scala-lang.org/download/sbt下载地址:http://www.scala-sbt.org/download.htmlScala IDE for原创 2017-11-22 11:47:59 · 343 阅读 · 0 评论 -
Scala函数和代码块
一 代码块{exp1;exp2}{exp1exp2}代码块也是一个表达式,其最终的求值是最后一个表达式的值。 二 函数def functionName(param:ParamType):ReturnType={//function body:expressions} 三 实例object func_examples { def he原创 2017-11-22 11:48:10 · 1952 阅读 · 0 评论 -
Scala的基础if和for
一 if 表达式 二 for comprehension 三 实例object worksheet_cakin { val l =List("mommu","bob","doddy")//> l : List[String] = List(mommu, bob, doddy)for( sl //generator)println(s)//>原创 2017-11-22 11:48:19 · 301 阅读 · 0 评论 -
Scala的try表达式和match表达式
一 try 表达式 二 match表达式 三 实例object try_match { val result_try =try{Integer.parseInt("dog")}catch{case _=>0}finally{ println("always be printed")}//> always be printed//| re原创 2017-11-22 11:48:30 · 1392 阅读 · 0 评论 -
Scala的求值策略
一 求值策略 二 求值策略的例子 三 实例scala> def bar(x:Int,y:=>Int)=1bar:(x:Int, y:=>Int)Intscala> def loop():Int= looploop:()Intscala> bar(1,loop) //正常秩序,不需要调用loopres1:Int=1s原创 2017-11-22 11:48:40 · 400 阅读 · 0 评论 -
Scala函数和匿名函数
一 函数是第一等公民1、把函数作为实参传递给另外一个函数。2、把函数作为返回值。3、把函数赋值给变量。4、把函数存储在数据结构里。在Scala中,函数就像普通变量一样,同样也具有函数的类型。 二 函数类型1、定义在Scala语言中,函数类型的格式为A =>B,表示一个接受类型A的参数,并返回类型B的函数。例子:Int => String 是把整型映射为字符串原创 2017-11-22 11:48:51 · 1728 阅读 · 0 评论 -
Scala柯里化
一 柯里化函数把具有多个参数的函数转换为一条函数链,每个节点上是单一参数。柯里化(Currying)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数。以下两个add函数定义时等价的def add(x:Int,y:Int)=x+ydef add(x:Int)(y:int)=x+y //Scala柯里化语法 二原创 2017-11-22 11:49:01 · 440 阅读 · 0 评论 -
Scala函数综合
一 需求 二 代码object sumfunc { def sum(f:Int => Int)(a:Int)(b:Int):Int ={ @annotation.tailrec def loop(n:Int,acc:Int):Int={ if(n>b){ println(s"n=${n},acc=${acc}") acc原创 2017-11-22 11:49:10 · 252 阅读 · 0 评论 -
Scala list高级使用
一 简介介绍List的一些高阶函数 二 代码C:\Users\lenovo>scalaWelcome to Scala2.12.1(JavaHotSpot(TM)64-BitServer VM,Java1.8.0_101).Typein expressions for evaluation.Ortry:help.scala> val l =List(1,2,3原创 2017-11-22 11:49:20 · 499 阅读 · 0 评论 -
Scala递归函数
一 递归函数在函数式编程中实现循环的一种技术。例子:计算n!def factorial (n:Int):Int = if (n else n * factorial(n-1) 二 尾递归函数尾递归函数中所有递归形式的调用都出现在函数的末尾。当编译器检测到一个函数调用时尾递归的时候,它就覆盖当前的活动记录而不是在栈中去创建一个新的。 三 代码原创 2017-11-22 11:49:29 · 1036 阅读 · 0 评论 -
Scala集合概述
一 集合类图 二 List[T]C:\Users\lenovo>scalaWelcome to Scala2.12.1(JavaHotSpot(TM)64-BitServer VM,Java1.8.0_101).Type in expressions for evaluation.Ortry:help.scala> val a =List(1,2,3,4)原创 2017-11-22 11:49:39 · 234 阅读 · 0 评论 -
Scala的map高阶函数应用
一 代码scala> val c =List("x","y","z")c:List[String]=List(x, y, z)scala> c.map(x => x.toUpperCase)res7:List[String]=List(X, Y, Z)scala> c.map(_.toUpperCase)res8:List[String]=List(X, Y,原创 2017-11-22 11:49:47 · 4812 阅读 · 1 评论 -
Scala reduceLeft与flodLeft
一 reduceLeft简介 二 代码scala> l.reduceLeft((x,y)=>x+y)res16:Int=6scala> l.reduceLeft(_+_)res17:Int=6 三 flodLeft简介 四 代码scala> l.foldLeft(0)(_+_)res18:Int=6原创 2017-11-22 11:49:58 · 1077 阅读 · 1 评论 -
Scala tuple与map
一 tuplescala>(1,2)res27:(Int,Int)=(1,2)scala>(1->2)res28:(Int,Int)=(1,2)scala>(1,"Alice","Math",97.5)res30:(Int,String,String,Double)=(1,Alice,Math,97.5)scala> val t =(1,"Alice"原创 2017-11-22 11:50:08 · 567 阅读 · 0 评论 -
Scala实现快速排序
代码scala>:paste//Entering paste mode (ctrl-D to finish)def qSort(a:List[Int]):List[Int]=if(a.length2) aelseqSort(a.filter(_a.head))++a.filter(_ == a.head)++qSort(a.filter(_>a.head)原创 2017-11-22 11:50:19 · 1352 阅读 · 0 评论 -
Scala概述
一 特性1、Scalable编程语言2、纯正的面向对象语言3、函数式语言4、无缝的java互操作 二 函数式编程思想1、什么是函数式编程“就是只用纯函数来编写程序啦”纯函数,或函数的纯粹性,没有副作用。副作用是状态的变化。例如:修改了全局变量、抛出了异常、IO读写、调用有副作用的函数。 上例中XplusY_V1对X不具备副作用,它是一个纯函数。原创 2017-11-22 11:47:29 · 236 阅读 · 0 评论