Scala编程
Scala笔记与纪录
pub.ryan
专注于大数据
展开
-
Scala编程11: 高阶函数(重点掌握)
1、高阶函数高阶函数,即定义时将参数类型设置为函数,并在定义的地方进行调用,在使用时再将需要的函数体直接写入或通过变量方式传入进去第一种:外面定义一个函数,在使用时直接调用指向函数体的变量来调用此函数,使用起来和普通函数没太多差别,直接传值如:交换两个数# 先定义一个普通函数,实现两个数的交换def swap2num(x:Double, y:Int):(Int,Double)={(y,x)}# 再将此函数赋值给一个变量, 注意后面的_不可以省略,此步也可以直接省略,直接调用也是原创 2020-12-12 23:37:05 · 174 阅读 · 0 评论 -
scala编程08:类型转换isInstanceOf/asInstanceOf和getClass/classOf区别、模式匹配
1、父类与子类的相互转换:isInstanceOf asInstanceOf转换有三个条件,和java是一样的:向上自动转换,向下强制转换,但转换前必须先有向上转换才可以向下转换两个类之间必须有继承关系 必须先向上转型:即父类引用指向子类对象 才能向下转型:才可以将父类引用在使用的时候强制向下转换为子类对象class Shapeclass Triangle extends Shapeobject IsInstanceDemo { def main(args: Array[Stri.原创 2020-12-11 12:00:53 · 317 阅读 · 0 评论 -
scala编程09:调用父类构造函数、trait测试程序执行时间、${}字符串拼接、trait调用链实现数据分段校验(重点掌握)
1、子类调用父类构造函数import java.text.SimpleDateFormatimport java.util.{Calendar, Date}class Employee(val name: String, val age: Int, val birth: String)//子类需要使用父类的成员变量时是不需要使用val或var的,否则就会覆盖父类已定义的成员变量class Sale(name: String, age: Int, birth: String, val dept原创 2020-12-11 14:35:20 · 324 阅读 · 0 评论 -
scala编程07:面向对象:成员变量、内部类、单例、Apply(重点)、枚举
1、getter与setter定义不带private的var field,此时scala生成的面向JVM的类时,会定义为private的name字段,并提供public的getter和setter方法 而如果使用private修饰field,则生成的getter和setter也是private的,只能在伴生对象内部使用 如果定义val field,则只会生成getter方法 如果不希望生成setter和getter方法,则将field声明为private[this],则只可以在类内部使用...原创 2020-12-10 23:14:15 · 148 阅读 · 0 评论 -
scala编程06:map的CRUD操作\zip拉链表
1、创建:2、访问:3、修改:4、遍历: /* 创建 */ //不可变的map val mapages = Map("ryan" -> 39, "tom" -> 42, "dang" -> 33) // mapages("dang")=31 //不可直接改,报错 //如果一定要修改不可变的map,只能生成一个新的 val mapages1 = mapages + ("d.原创 2020-12-10 19:49:42 · 225 阅读 · 0 评论 -
Scala编程10 : 序列变长参数、方法与函数区别、延迟加载lazy
1、抽象类与无参方法、多态在类中,能用字段优先用字段,使用简单且访问又快无参方法,可直接用属性字段代替 val height = contents.length 等价于def height():Int = contents.length//抽象类abstract class Element { def contents: Array[String] //无参抽象方法 //在类中,能用字段优先用字段,使用简单且访问又快 val height = content...原创 2020-12-11 15:01:19 · 139 阅读 · 0 评论 -
Scala编程05 函数闭包、函数8种形式与复合函数、柯里化
1、闭包——减少重复认识闭包,其实就是一段代码,将闭包当作参数直接来使用,以达到减少重复代码目的。需求: 写一个文件浏览器,提供相应的api给用户来查找文件,功能: 1、可以根据扩展名查询 2、可以根据文件名中的任意部分查询 3、通过正则查询 …… 等等查询要求 很容易写出以下的代码:package pub.ryan.ooimport java.io.File/** * 查找当前目录下的文件 */object Que.原创 2020-11-18 23:38:56 · 140 阅读 · 0 评论 -
Scala编程04 约束条件、this/that、链式编程、类构造、方法重载/重写
1、检查前置条件:require非空、长度、数值范围约束,代码更加可靠强壮class Employee(id: String, name: String, age: Int) { require(id != null && id.length < 10) require(name != null) require(age > 0 && age < 150) override def toString: String = "编号:"原创 2020-11-17 09:44:18 · 695 阅读 · 0 评论 -
Scala编程03 - 类型、原生字符串、字面标识符
1、基础类型在scala中是没有包装类的,一切都是类,基础类型包括:Byte Short Int Long Char String Float Double Boolean2、原生字符串(""")以三个双引号开始,三个双引号结束,多行实现:开始用|为管道符, 结束用stripMargin实现 val host = "localhost" println( s""" | "jsdfksd dsfj dskfja sdfsa"原创 2020-11-16 23:08:36 · 175 阅读 · 0 评论 -
Scala编程02 - 类和伴生类、对象和孤立对象、简单内部类
类是对象的蓝本,一旦你定义好了一个类,就可以用new从这个类蓝本创建出新的对象。在类定义中,你需要填写字段和方法,这些都称为成员变量和成员方法原创 2020-11-16 22:13:54 · 194 阅读 · 0 评论 -
Scala编程01 - 九步快速上手Scala,足够了
1、语言介绍Scala——scalable language,一门可按需伸缩、简洁的语言,它融合了面向对象与函数式编程风格的风格。1.1 什么是函数式编程?在函数式编程中,函数地位与整数、字符串是相同的;特点:1、可以将函数作为参数传递给其它函数,作为返回值返回它们2、也可以将函数保存在变量里3、可以在函数中定义另一个函数4、还可以定义函数时不指定名字安装好了以后,可以直接打开cmd,输入scala就可以直接上手写程序1.2 语言的简洁高效从scala到ja.原创 2020-11-12 23:54:08 · 493 阅读 · 0 评论