随笔分类 - scala
摘要:1.REPL:读取->求值->打印->循环。Scala程序将输入的内容快速的编译成为字节码,然后字节码文件交给Java虚拟机进行执行。 2.val是值不可变,var值可变。在变量声明或者赋值语句中,没有使用分号,仅当一行代码中存在多条语句的时候才需要使用分号隔开。 3.基本数据类型的变量和包装类型的
阅读全文
摘要:1.本章要点; (1)if表达式有值; (2)块也有值,是它最后一个表达式的值 (3)Scala的for循环就像是"增强版的"Java for循环 (4)分号不是必须的 (5)void 类型是Unit (6)避免在函数的定义中使用return (7)注意别在函数式定义中漏掉了= (8)异常的工作方式
阅读全文
摘要:1.进官网:https://www.scala-lang.org/ 上面就是进入Scala社区后的一个画面,官方对Scala的简单介绍是:Scala将面向对象和函数式编程集合在一个简洁的高级语言中,Scala的静态类型有助于避免复杂应用程序中的错误。Scala既有动态语言那样灵活简洁,同时又保留了静
阅读全文
摘要:第二章 控制结构和函数 1.条件表达式 (1)scala中if/else表达式有值,这个值就是跟在if或者else之后的表达式的值。如: if (x > 0) 1 else -1 这个表达式的值是1或者-1,具体是哪个值取决于x的值。 可以将这个if/else表达式的值赋给变量: val s = i
阅读全文
摘要:第一章 基础 1.安装scala解释器 (1)scala-2.12.1.msi (2)配置环境变量:SCALA_HOME = D:\Program Files\scala Path= %SCALA_HOME%\bin;%SCALA_HOME%\jre\bin; ClassPath =.;%SCALA
阅读全文
摘要:一、高阶函数 1.作为值的函数:在Scala中,函数是头等公民,就和数字一样。 对函数能够干什么呢?调用它以及传递它 2.匿名函数 在scala中,不需要给每一个函数来进行命名,正如不需要给每个数字命名一样,以下是一个匿名函数 f1:add f2:sub //遍历数组值,输出元素值,每个元素平方返回
阅读全文
摘要:1.trait 如果只有一个trait就使用extends进行扩展,如果是多个,就使用with对生于trait进行扩展 //trait之间也存在扩展 trait logger2 extens logger1{} //with trait 是需要对每个trait都使用trait 自身类型 this:类
阅读全文
摘要:1.读取行 要读取文件中所有的行,可以调用scala.io.Source对象的getLine方法: 结果是一个迭代器,可以用其来逐条处理行 for(1<- lineIterator) 处理1 或者可以对其迭代器应用toArray或者toBuffer方法,将这些放到数组或者数组缓冲中去:val lin
阅读全文
摘要:1.scala:java语言脚本化 2.object //静态成员 3.class //class 4.trait //接口 5.def xxx(a:Int):Unit={} //函数的定义,函数有=号 6.def xxx(a:Int):Unit{} //定义过程 7.val //常量 8.var
阅读全文
摘要:1.包 Scala中的包和Java或者C++中命名空间的目的是相同的:管理大型程序中的名称。 //包对象,编译完成之后生成以xxx为package,下面含有类package.class+package.class 2.scala java语言脚本化 object //静态成员 class //cla
阅读全文
摘要:1.单例对象。Scala没有静态方法或字段,可以使用object这个语法结构来达到同样的目的。对象定义了单个实例,包含了你想要的特性。 Scala没有静态的概念,如果需要定义静态成员,可以通过object来实现 编译完成后,会生成对应的类,方法都是静态方法,非静态成员对应到单例类中去。 单例类以Ut
阅读全文
摘要:1.简单类和无参方法 calss Counter{ private var value = 0 //必须初始字段 def increment(){value +=1} //方法默认是公有的 def current()=value } 在Scala中,类并不声明为publuc。Scala源文件可以包含
阅读全文
摘要:1.构造映射 //可变映射 2.获取映射中的值:在scala中,函数和映射之间的相似性尤为明显,因为用()表示法来查找某个键对应的值 val bobSource=sources("Bob") //类似于Java中的sources.get("Bob"),如果映射中不包含请求中使用的键值,就会抛出异常
阅读全文
摘要:数组 0.若长度固定则用Array,若长度可能变化则使用ArrayBuffer 1.提供初始值的时候不要使用new。 2.用()来访问元素 3.使用for(elem<-arr)来遍历元素 4.用for(elem<- arr if ....)...yield...来将原数组转换成新数组 5.Scala
阅读全文
摘要:一、控制结构和函数 1、条件表达式 (1) 在Scala中if/else的表达式都是有值的,这个值就是跟在if或者else之后的表达是的值 eg: if(x >0) 1 else -1 //上面表达式的值是1或者-1,具体是哪个值取决于x的值 (2) 可以将if/else表达式的值赋给变量 val
阅读全文
摘要:scala java语言脚本化 1.安装scala-2.12.1.msi 2.进入到scala的命令行 3.Tab键会有补全的功能 1.scala程序并不是一个解释器,实际上,你输入的内容会很快的被编译成字节码文件,然后这段字节码文件会提交给java虚拟机进行相关的运行。 2.声明值和变量:除了直接
阅读全文