scala
奇允
爱积累各种工具
展开
-
currying优点示例
Γ(n)=(n−1)!∀n∈ℕ\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N 函数式编程经常要用到高阶函数,scala可以简写返回值类型是函数的函数,简写的函数就叫currying函数 - 疑问一:为什么需要将多个参数的函数拆成多个函数呢 - 求和∑baf(a)\sum_{a}^bf(a)def sum(f: Int => Int, a: Int, b原创 2016-05-07 11:24:26 · 403 阅读 · 0 评论 -
Scala常用类
常用类Array长度不可改变的数 组val a = Array("hello", "world")//或者使用new创建val a = new Array[String](10)a(0) = "hi"//排序scala.util.Sorting.quickSort(a)ArrayBuffer类似java的ArrayList,长度可变import scala.collection.mut原创 2017-11-15 18:50:59 · 296 阅读 · 0 评论 -
scala学习笔记目录(整理中)
Scala vs Java基本语法函数式编程隐式转换和隐式参数面向对象编程模式匹配常用表达式常用类Scala actor参考JIM MCBEATH:Scala Functions vs Methods原创 2016-04-28 22:19:47 · 1555 阅读 · 0 评论 -
Scala面向对象编程
类的定义package com.scala //定义包名// 定义类的时候自动引入主构造函数,参数和类参数一致// 没有定义在任何方法或者是代码块之中的代码,就是主constructor的代码// 类参数带val或var修饰的,自动成为类的实例,可以通过对象.变量名引用// 没有带var或var修饰的,外部无法引用class Student(val name: String,...原创 2017-11-15 18:49:37 · 327 阅读 · 0 评论 -
Scala隐式转换和隐式参数
隐式转换和隐式参数 Scala在面对编译出现类型错误时,提供了一个由编译器自我修复的机制,编译器试图去寻找一个隐式implicit的转换方法,转换出正确的类型,完成编译 优点使代码简洁,但可读性差val num: Int = 3.5 // Compile Error// 如果在上面加一个隐式转换方法之后,就没问题了implicit def double2Int(d: Double)原创 2017-11-15 18:46:10 · 307 阅读 · 0 评论 -
Scala函数式编程
函数(function) vs 方法(method)函数函数定义使用:=>, 如val f1 = (x:Int) => x+3f1的类型是Int=>Int,也即是个函数,输入是Int,返回是Int类型的函数函数是一个完整的对象,和普通对象一样,有属于的类型,如Function1<T,T>(描述有一个输入参数,返回的是T),有方法,如apply appl...原创 2017-11-15 18:44:10 · 249 阅读 · 0 评论 -
Scala基本语法
变量声明:val vs varval name: String = "name"var name = "name"val声明的是常量,无法改变变量值var声明的是变量,可以改变引用值变量类型可选,不写则依据值自动推导lazy变量,不马上计算,使用的时候才计算// 通配符import scala.io.Source._// scala.Predef对象和java.lang 、scala原创 2017-11-15 18:45:41 · 226 阅读 · 0 评论 -
Scala vs Java
Scala vs Java都是基于Java虚拟机,也即需要编译为字节码,字节码由虚拟机解释执行Scala可以任意调用Java的代码scala有支持REPL交互式的解释器,会快速编译scala代码为字节码,然后交给JVM来执行。REPL指Read(取值)-> Evaluation(求值)-> Print(打印)-> Loop(循环)scala没有++、--操作符没有java的基本数据类型(如原创 2017-11-15 18:45:05 · 513 阅读 · 0 评论 -
spark开发环境
使用maven管理scala依赖包scala开发环境idea 如果没有scale-archetype-simple这项,可以通过新添加获取 <groupId>net.alchim31.maven</groupId><artifactId>scala-archetype-simple</artifactId><version>1.5</version><packaging>mave原创 2016-05-08 18:16:54 · 799 阅读 · 0 评论 -
Scala常用表达式
常用表达式if表达式可以返回值的,类型会自动推断val isAdult = if (age > 18) 1 else 0循环while(true) {}for(i <- 1 to n) {} //[1,n]for(i <- 1 until n) {} //[1,n)for(i <- (1 until n).reverse) //反向遍历for(c <- "Hello World")原创 2017-11-15 18:50:02 · 1158 阅读 · 0 评论