【Scala】Scala-case-参考资料】的更多相关文章

Scala:case class 1.Scala中class.object.case class.case object区别 1.1 class 和 object 关系 1.2 case class 与 class 区别 1.3 case class 和 case object 区别 1.4 当类被声明为case class的时,scala会做的事情 1.Scala中class.object.case class.case object区别 原文:Scala中class.object.case…
Case classes are like regular classes with a few key differences which we will go over. Case classes are good for modeling immutable data. In the next step of the tour, we’ll see how they are useful in pattern matching. Defining a case class A minima…
1.必须是使用case 定义object类 package config import org.apache.spark.sql.SparkSession import org.apache.spark.{SparkConf, SparkContext} case object conf { val confs: SparkConf = new SparkConf().setMaster("local").setAppName("job") val sc = new…
class caseTest { def main(args: Array[String]): Unit = { val c = Person(Student(1),"a") c match { //匹配Person对象,但除了使用Person对象的两个构造参数stu, name外 //有时候还需要用到匹配Person对象实例, 使用 a@A a为对象名,A为对象类型 case person @ Person(stu, name) => { val student: Studen…
Object An object is a type of class that can have no more than one instance, known in object-oriented design as a singleton. Instead of creating an instance with a new keyword, just access the object directly by name. Objects provide similar "static&…
1.List 基础操作 2.Set 基础操作 3. TreeSet 排序Set 4. 拉链操作 5. 流 import scala.collection.immutable.TreeSet import scala.util.Random /** * @author xwolf * @date 2017-04-25 15:26 * @since 1.8 */ object Collection { def main(args:Array[String]):Unit={ list() // set…
1. 变量 val定义的值实际上是一个常亮,无法改变其内容 scala> val num = 0 num: Int = 0 scala> num = 2 <console>:12: error: reassignment to val num = 2 ^ 如果要声明其值可变的变量,可以使用var scala> var number = 0 number: Int = 0 scala> number = 2 number: Int = 2 在Scala中,建议使用val,…
1.scala 函数定义 2.scala 高阶函数 3.匿名函数 4.柯里化 import scala.math._ /** * @author xwolf * @date 2017-04-24 9:57 * @since 1.8 */ class Function { // _ 将round 方法转化为函数 val cel = round _ def add(x:Int,y:Int) = x+y //函数 def f(x : => Int) = x.+(3) def m (r : => Do…
1. Regex对象 我们可以使用scala.util.matching.Regex类使用正则表达式.要构造一个Regex对象,使用String类的r方法即可: val numPattern = "[0-9]+".r 如果正则表达式包含反斜杠或引号的话,那么最好使用"原始"字符串语法"""...""": val positiveNumPattern = """^[1-9]\d*…
1. 读取行 读取文件,可以使用scala.io.Source对象的fromFile方法.如果读取所有行可以使用getLines方法: val source = Source.fromFile("/home/xiaosi/exception.txt", "UTF-8") val lineIterator = source.getLines() for(line <- lineIterator){ println(line) } source.close() s…
1. 单例对象 Scala没有静态方法或静态字段,可以使用object来达到这个目的,对象定义了某个类的单个实例: object Account{ private var lastNumber = 0 def newUniqueNumber () = {lastNumber += 1; lastNumber} } 当你在应用程序中需要一个新的唯一账号时,调用Account.newUniqueNumber()即可.对象的构造器在该对象第一次被使用时调用.在本例中,Account的构造器在Accou…
1. 简单类与无参方法 class Person { var age = 0 // 必须初始化字段 def getAge() = age // 方法默认为公有的 } 备注 在Scala中,类并不声明为public. Scala源文件可以包含多个类,所有这些类都具有公有可见性.属性不声明默认为public. 使用类: val p = new Person // 或者new Person() p.age = 23 println(p.getAge()) // 23 调用无参方法时,可以写上圆括号,也…
Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. 不太久之前编程语言还可以毫无疑意地归类成“命令式”或者“函数式”或者“面向对象”.Scala代表了一个新的语言品种,它抹平了这些人为划分的界限. 根据David Rupp在博客中的说法,Scala可能是下一代Java. 与只支持单继承的语言相比,Scala具有更广泛意义上的类重用.Scala允许定义新类的时候重用“一个类中新增的成员定义(即相较于其父类的差异之处)…
1. 构造映射 可以使用如下命令构造一个映射: scala> val scores = Map("Alice" -> 90, "Kim" -> 89, "Bob"-> 98) scores: scala.collection.immutable.Map[String,Int] = Map(Alice -> 90, Kim -> 89, Bob -> 98) 上面构造了一个不可变的Map[String, I…
1. 定长数组 如果你需要一个长度不变的数组,可以使用Scala中的Array. val nums = new Array[Int](10) // 10个整数的数组 所有元素初始化为0 val strs = new Array[String](10) // 10个字符串的数组 所有元素初始化为null val s = Array("Hello", "World") // 长度为2的Array[String] 类型是推断出来的 s(0) = "GoodBye…
一  Scala简述 Scala (斯卡拉)是一门多范式(multi-paradigm)的编程语言. 这里所谓的范式,指的是编写程序的方式,不同的编程语言,方式也不尽相同,也就意味着Scala编程语言是融合了多种不同编程方式的语言.所以Scala语言的设计初衷是要集成面向对象编程和函数式编程的各种特性. 二  Scala与Java的关系 创始人马丁·奥德斯基(Martin Odersky)是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序这样的基础工作变得高效,简单,且…
1.单例对象和伴生对象 2.定义单利对象的apply方法可不通过构造器直接创建对象 3.extends 来扩展单例对象 4.枚举实现 /** * 单例对象 * * @author xuejz * @date 2017-04-13 16:41 * @since 1.8 */ //单例对象 class Parent extends Action(12){ //调用伴生对象的无参方法 val pson =if(Parent.son==0) 1 else Parent.newSon val son=0…
在我们详细介绍Scala的Case class和模式匹配之前,我们可以通过一个简单的例子来说明一些基本概念.我们设计一个函数库,这个函数库可以用来计算算术表达式,为简单起见,我们设计的算术表达式只侧重于变量,数字,单操作符,和双操作符.我们可以采用如下的Scala类定义: abstract class Expr case class Var(name:String) extends Expr case class Number(num:Double) extends Expr case clas…
原文地址 本文只是带你进入 Scala 的世界,包括安装.不可变量 val.可变量 var.定义类.集合(包括列表(list).集(set).映射(map))以及集合遍历和集合库(能达到并行/并发效果). 题外话,如果 Java 争气的话,还就真不会出现像 Scala 这些语言.对于函数式编程风格的支持,尤其是对于 Lambda 表达式的支持,能减少必须要编写的逻辑无关的样板代码,让程序员集中精力任务本身.而 Java 对 Lamdba 表达式的支持到 JavaSE8 才实现(你可以查一下 Ja…
快速了解Scala技术栈 我无可救药地成为了Scala的超级粉丝.在我使用Scala开发项目以及编写框架后,它就仿佛凝聚成为一个巨大的黑洞,吸引力使我不得不飞向它,以至于开始背离Java.固然Java 8为Java阵营增添了一丝亮色,却是望眼欲穿,千呼万唤始出来.而Scala程序员,却早就在享受lambda.高阶函数.trait.隐式转换等带来的福利了. Java像是一头史前巨兽,它在OO的方向上几乎走到了极致,硬将它拉入FP阵营,确乎有些强人所难了.而Scala则不,因为它的诞生就是OO与FP…
Scala语言的简介和开发环境搭建 Scala是一门结合了面向对象特征和函数式编程特征的语言,它是一个创新的编程语言产品.Scala可以做脚本(就像shell脚本一样),可以做服务端编程语言,可以写数据处理程序等,在很多方面都适用,但是目前主要应用的领域有:编写Web服务器端程序.编写基于Spark的数据处理程序.能做的事情很多,可是被采用的领域不多. 这里对Scala语言的基本情况做一个介绍,然后介绍一下如何搭建Scala的开发环境. 以下是本文的提纲: 1.Scala的简介 2.Scala开…
Scala 与 Java有着相同的数据类型,下表列出了 Scala 支持的数据类型: Byte8位有符号补码整数.数值区间为 -128 到 127 Short16位有符号补码整数.数值区间为 -32768 到 32767 Int32位有符号补码整数.数值区间为 -2147483648 到 2147483647 Long64位有符号补码整数.数值区间为 -9223372036854775808 到 9223372036854775807 Float32位IEEE754单精度浮点数 Double64…
1. The three principles of OOP are encapsulation(封装性), inheritance(继承性) and polymorphism(多态性). example: class Shape{ def area: Double = 0.0 } # supertype # subtypes class Rectangle(val width: Double, val height: Double) extends Shape{ override def ar…
1. Variables (1) Three ways to define variables: 1) val refers to define an immutable variable; scala> val x = x: Int = scala> x*x res4: Int = scala> res4 + # use result as a value res6: Int = scala> res4 + res6 res7: Int = scala> x = # x i…
1. Scala is a contraction of "scalable" and "language". It's a fusion of objected-oritended and functional programming. 2. Compare Book class between Java and Scala Java: class Book{ private String title; private int numberOfPages; pub…
一.什么是scala scala 是基于JVMde 编程语言.JAVA是运行在jvm上的编程语言,java 源代码通过jvm被编译成class 文件,然后在os上运行class 文件.scala是运行在jvm 上的编程语言,scala源代码通过jvm被编译成class文件,然后在os上运行class文件. 二语法: 1.声明值和变量 var a =12 // 定义变量 vary val  b = 23//  定义常量:value 2.有趣的语法特性 在scala的变量声明时,可以不指定类型,由解…
一 入门 为了增加编程趣味和技能,学习新语言,体会函数式编程和简易的并发管理模型,了解日渐活跃的Spark,尝试下Scala.Scala = Scalable language,作者是Martin Odersky. 1. mac下安装 brew install scala 命令行输入scala  println("hello,scala") 2. Intellij scala plugin http://confluence.jetbrains.com/display/SCA/Gett…
Scala开发参照清单 这里列出在开发一个Scala工程中需要参照的资料. 官网网站 http://www.scala-lang.org/ 文档网站 http://docs.scala-lang.org/index.html Cheatsheet http://docs.scala-lang.org/cheatsheets/ 代码风格 http://docs.scala-lang.org/style/ 设计模式 https://wiki.scala-lang.org/display/SYGN/D…
_ 的用途 // import all import scala.io._ // import all, but hide Codec import scala.io.{Codec => _, _} // import all, but rename Codec as CodeA import scala.io.{Codec => CodeA, _} // import all from an object import scala.io.Codec._ object Main { // Hi…
scala语言的一大重要特性之一就是模式匹配.在我看来,这个怎么看都很像java语言中的switch语句,但是,这个仅仅只是像(因为有case关键字),他们毕竟是不同的东西,switch在java中,只能是用在函数体类的,且需要结合break使用.但是,在scala语言中,pattern matching除了有case关键字,其他,似乎和java又有很多甚至完全不同的东西. scala在消息处理中为模式匹配提供了强大的支持! 下面看看模式匹配的英文定义: A pattern match incl…