Scala
Scala
未名__
这个作者很懒,什么都没留下…
展开
-
五.递归与尾递归案例
递归的缺点:效率低,容易出现栈溢出尾递归的思想:每次都利用调用参数传回的值去计算案例: // 递归 def factorial(n:Int):Int= if(n<=0) 1 else n*factorial(n-1) factorial(5) //尾递归 @annotation.tailrec def factorial(n:Int,m:Int) :Int= if (n<=0) m else factorial(n-1, m*n) factoria原创 2021-04-16 16:37:32 · 115 阅读 · 0 评论 -
四.柯里化
柯里化(Currying)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数。定义一个函数:def add(x:Int,y:Int)=x+y函数柯里化:def add(x:Int)(y:Int) = x + y案例: // 函数 def curriedAdd1(a:Int,b:Int) = a+b //> curriedAdd1: (a: Int, b: Int)Int curriedAdd1(1,2)原创 2021-04-16 16:30:40 · 100 阅读 · 0 评论 -
三.try与match表达式
object worksheet_p3 {/* try{} try在java中是语句,在scala中是表达式,会返回一个值 catch{} finaly{}*/ val result_try = try{ // 把dog转成int,这时候,会抛出异常 Integer.parseInt("dog") }catch{ // 这里的意思是:抛出异常之后,进入到catch,catch接收, case _ => 0 // catch有case原创 2021-04-16 16:23:13 · 291 阅读 · 0 评论 -
二.try与if中的 for comprehension和collection
object worksheet_p2 { val l = List("alice","bob","cathy") //> l : List[String] = List(alice, bob, cathy) for( s <- l )println(s) //> alice //| bob原创 2021-04-16 16:21:30 · 97 阅读 · 0 评论 -
一.函数与代码块
// 函数与代码块object func_examples { // hello是函数的名字 name是函数的参数 第一个String是参数的类型 第二个string的意思是函数返回的类型 def hello(name:String):String = { // 字符串插值 s"Hello,${name}" } //> hello: (name: String)St原创 2021-04-16 16:19:47 · 423 阅读 · 0 评论