Scala
chengqiuming
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Scala柯里化
一 柯里化函数 把具有多个参数的函数转换为一条函数链,每个节点上是单一参数。 柯里化(Currying)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数。 以下两个add函数定义时等价的 def add(x:Int,y:Int)=x+y def add(x:Int)(y:int)=x+y //Scala柯里化语法 二原创 2017-11-22 11:49:01 · 524 阅读 · 0 评论 -
Scala概述
一 特性 1、Scalable编程语言 2、纯正的面向对象语言 3、函数式语言 4、无缝的java互操作 二 函数式编程思想 1、什么是函数式编程 “就是只用纯函数来编写程序啦” 纯函数,或函数的纯粹性,没有副作用。 副作用是状态的变化。 例如:修改了全局变量、抛出了异常、IO读写、调用有副作用的函数。 上例中XplusY_V1对X不具备副作用,它是一个纯函数。原创 2017-11-22 11:47:29 · 305 阅读 · 0 评论 -
Scala基础语法之变量
一 三种变量修饰符 1、val:定义常量 2、var:定义变量 3、lazy val:定义惰性求值常量 注意:可以不显示指定变量类型,因为Scala会自动进行类型推导。 二 举例 F:\scala\command>scala Welcome to Scala2.12.1(JavaHotSpot(TM)64-BitServer VM,Java1.8.0_101). Typ原创 2017-11-22 11:47:38 · 325 阅读 · 0 评论 -
Scala类型
一 Scala类型体系 二 实例 C:\Users\lenovo>scala Welcome to Scala2.12.1(JavaHotSpot(TM)64-BitServer VM,Java1.8.0_101). Typein expressions for evaluation.Ortry:help. scala> val a:Byte=10 a:Byte=10原创 2017-11-22 11:47:50 · 381 阅读 · 0 评论 -
Scala环境搭建
一 Scala相关软件下载地址 Java JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html Scala JDK:http://www.scala-lang.org/download/ sbt下载地址:http://www.scala-sbt.org/download.htmlScala IDE for原创 2017-11-22 11:47:59 · 432 阅读 · 0 评论 -
Scala函数和代码块
一 代码块 {exp1;exp2} { exp1 exp2 } 代码块也是一个表达式,其最终的求值是最后一个表达式的值。 二 函数 def functionName(param:ParamType):ReturnType={ //function body:expressions } 三 实例 object func_examples { def he原创 2017-11-22 11:48:10 · 2056 阅读 · 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 · 377 阅读 · 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 · 1483 阅读 · 0 评论 -
Scala的求值策略
一 求值策略 二 求值策略的例子 三 实例 scala> def bar(x:Int,y:=>Int)=1 bar:(x:Int, y:=>Int)Int scala> def loop():Int= loop loop:()Int scala> bar(1,loop) //正常秩序,不需要调用loop res1:Int=1 s原创 2017-11-22 11:48:40 · 485 阅读 · 0 评论 -
Scala函数和匿名函数
一 函数是第一等公民 1、把函数作为实参传递给另外一个函数。 2、把函数作为返回值。 3、把函数赋值给变量。 4、把函数存储在数据结构里。 在Scala中,函数就像普通变量一样,同样也具有函数的类型。 二 函数类型 1、定义 在Scala语言中,函数类型的格式为A =>B,表示一个接受类型A的参数,并返回类型B的函数。 例子:Int => String 是把整型映射为字符串原创 2017-11-22 11:48:51 · 1842 阅读 · 0 评论 -
Scala Range与Stream
一 Range scala>1 to 10 res20: scala.collection.immutable.Range.Inclusive=Range1 to 10 scala>1 to 10 by 2 res21: scala.collection.immutable.Range= inexact Range1 to 10 by 2 scala>(1 to 10).t原创 2017-11-22 11:50:28 · 744 阅读 · 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 · 334 阅读 · 0 评论 -
Scala list高级使用
一 简介 介绍List的一些高阶函数 二 代码 C:\Users\lenovo>scala Welcome 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 · 579 阅读 · 0 评论 -
Scala递归函数
一 递归函数 在函数式编程中实现循环的一种技术。 例子:计算n! def factorial (n:Int):Int = if (n else n * factorial(n-1) 二 尾递归函数 尾递归函数中所有递归形式的调用都出现在函数的末尾。 当编译器检测到一个函数调用时尾递归的时候,它就覆盖当前的活动记录而不是在栈中去创建一个新的。 三 代码原创 2017-11-22 11:49:29 · 1140 阅读 · 0 评论 -
Scala集合概述
一 集合类图 二 List[T] C:\Users\lenovo>scala Welcome 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 · 308 阅读 · 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 · 4896 阅读 · 1 评论 -
Scala reduceLeft与flodLeft
一 reduceLeft简介 二 代码 scala> l.reduceLeft((x,y)=>x+y) res16:Int=6 scala> l.reduceLeft(_+_) res17:Int=6 三 flodLeft简介 四 代码 scala> l.foldLeft(0)(_+_) res18:Int=6原创 2017-11-22 11:49:58 · 1190 阅读 · 1 评论 -
Scala tuple与map
一 tuple scala>(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 · 638 阅读 · 0 评论 -
Scala实现快速排序
代码 scala>:paste //Entering paste mode (ctrl-D to finish) def qSort(a:List[Int]):List[Int]= if(a.length2) a else qSort(a.filter(_a.head))++ a.filter(_ == a.head)++ qSort(a.filter(_>a.head)原创 2017-11-22 11:50:19 · 1422 阅读 · 0 评论
分享