scala高级内容(一) Case Class】的更多相关文章

一. 操作符 自定义操作符 操作付默认左结合调用.除了以:结尾的操作符是右结合调用 object OperaterTest extends App{ val a: myInt = new myInt(1) val b: myInt = new myInt(2) val c: myInt = new myInt(3) println(a +++ b) println((c---:b---:a).value) //:结尾的操作符右结合,相当于(a.---:(b)).---:(c) = 1-2-3 }…
一. Implicit关键字 隐士转换 (1)隐士转换函数:用implicit修饰的,只有一个参数的函数.他会被自动执行,来把一个值转换成另一个 class RichFile(val f:File){ def read = Source.fromFile(f).mkString } implicit def file2richFile(f:File) = new RichFile(f) //隐士转换函数 val result: String = new File("/home/lj/chrome…
1.Case函数的用法  (1)使用类似:switch-case与if-else if. (2)语法: case [字段] when 表达式 then 显示数据 when 表达式 then 显示数据 else 显示数据 end (3)百分制转换素质教育 1)如图:我们要将显示的数据转换成ABCDE,规则是90分以上显示A,80分以上显示B,以此类推.  2)执行的SQL语句是: Select ID,TestBase, Case then ‘A’ then ‘B’ then ‘C’ then ‘D…
Scala进阶之路-Scala高级语法之隐式(implicit)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们调用别人的框架,发现少了一些方法,需要添加,但是让别人为你一个人添加是不现实的,因此很多很多时候需要我们自己动手.掌握implicit的用法是阅读Spark源码的基础,也是学习Scala其它的开源框架的关键,implicit可分为隐式参数,隐式转换类型以及隐式类三种类型. 一.Scala中的隐士参数 /* @author :yinzhengjie Blog:…
Lucene查询 基本查询: @Test public void baseQuery() throws Exception { //1. 创建查询的核心对象 FSDirectory d = FSDirectory.open(new File("H:\\test")); IndexReader reader = DirectoryReader.open(d); IndexSearcher indexSearcher = new IndexSearcher(reader); //2. 执行…
Scala高级特性 1.    课程目标 1.1.   目标一:深入理解高阶函数 1.2.   目标二:深入理解隐式转换 2.    高阶函数 2.1.   概念 Scala混合了面向对象和函数式的特性,我们通常将可以作为参数传递到方法中的表达式叫做函数.在函数式编程语言中,函数是“头等公民”,高阶函数包含:作为值的函数.匿名函数.闭包.柯里化等等. 2.2.   作为值的函数 可以像任何其他数据类型一样被传递和操作的函数,每当你想要给算法传入具体动作时这个特性就会变得非常有用. 定义函数时格式…
一.函数式编程 Scala中的函数可以独立存在, 不需要依赖任 何类和对象 def  放在类中就是方法:放在外边就是函数 1.将函数赋值给变量 Scala中的函数是一等公民, 可以独立定义, 独立存在, 而且可以直接将函数作为  值赋值给变量            Scala的语法规定, 将函数赋值给变量时, 必须在函数后面加上空格和下划线 def sayHello(name: String) { println("Hello, " + name) } val sayHelloFunc…
package com.spark.demo import com.spark.demo.util.SparkUtil import org.apache.spark.rdd.RDD import scala.collection.mutable /** * @created by imp ON 2019/2/14 */ case class Person1(name:String,age:Int) object CaseDemo { def main(args: Array[String]):…
一.隐式 implicit分类: (1)隐式参数 (2)隐式转换类型 (3)隐式类 特点:让代码变得更加灵活 (一)隐式参数 1.ImplicitTest object ImplicitTest { //此参数 def sleep(how:String):Unit = {println(how)} //此参数如果被implicit修饰的话,调用可以不写参数 直接sleep2 def sleep2(implicit how:String = "香啊") = {println(how)}…
再来看一下之前的一段代码: def process(input: Any) { input match { case (a: Int, b: Int) => println("Processing (int, int)... ") case (a: Double, b: Double) => println("Processing (double, double)... ") case msg: Int if (msg > 1000000) =&g…
今天我们来介绍scala的高级特性,上次已经介绍过他的一个特性:高阶函数,这次是隐式转换 1.隐式转换的例子 read的例子 解析:发现这个file没有read的方法,然后就开始在开始在这个上下文里面找看有么有隐式的, 匹配的,如果有,就可以转换,这个里面的匹配是类型的匹配,发现file匹配richfile的匹配 2.匹配符号; -:逆变:作为偏函数的输入 +:斜变:作为偏函数的输出 则源码为: trait PartialFunction[-A,+B] extends (A => B), 用的不…
定义自己的控制结构,使它语言内置的用法一样 package exp object Main { def enableCustomerIF = false; def main(args: Array[String]): Unit = IF(1 / 0 == 0) // 这里就不用写 IF(()=>3>2)(()=>println("hello"); {//这不是语言内置的IF,大括号可不能省略 List("hello","world&quo…
1. 表表达式 (1) 将表作为一个源或将查询的一个结果集作为一个源,对源做处理,然后得到一个新的数据源,对其进行查询.  (2)表表达式放在from子句中 (3)派生表,将表的查询得到的结果集作为一个新的数据源,需要注意一下几点: 1)派生表必须有括号括起. 2)派生表需要取别名 3)派生表中的所有字段也要有别名(必须要给字段起名). 4)能够作为派生表的只有结果集(游标不行).  (4)写一段SQL语句,大家可以体会一下,这里就不提供数据库了. select * from ( select…
协变 案例一: class Animal {} class Bird extends Animal {} class Animal {} class Bird extends Animal {} //协变 class Covariant[T](t:T){} val cov = new Covariant[Bird](new Bird) val cov2:Covariant[Animal] = cov c不能赋值给c2,因为Covariant定义成不变类型. 稍微改一下: class Animal…
岗位级别:T3 岗位职责: 1.参与自动调价.匹配系统的设计和实现 岗位要求: 1. 一年以上scala开发经验2.良好的函数式编程能力3. JAVA基础扎实4.熟悉大数据处理,有hadoop/hbase使用经验5.良好的算法及数据结构知识6.善于学习,为人正直.诚信 感兴趣的同学可以联系我,我帮忙推荐…
了解这些问题,我先一步步来看,先从基础说起,然后引出这些概念. 本文只用实例验证结果,并做简要说明,给大家增加些印象,因为单独一项拿出来都需要大篇幅讲解. 1.值类型 & 引用类型 function show(x) { console.log(typeof(x)); // undefined console.log(typeof(10)); // number console.log(typeof('abc')); // string console.log(typeof(true)); //…
今天在公司查看一段sql SP代码,发现了一段比较奇怪的代码. 大概长这样子: Select * from tableA ORDER BY ColA , CASE END 小弟才疏学浅,咋一看到代码以为这样的: Select * from tableA 但是执行报错,同时也忘记了 order by 后面加数字是什么意思了... 果断查了一下: 示例1: SELECT last_name, salary , hire_date FROM EMPLOYEES ORDER BY salary DESC…
JavaScript面向对象 一.为每个对象动态添加属性或方法 功能:返回对象类型原型的引用 prototype的使用 格式:class.prototype 场景: 比如说:A写了一个类,交给B,B在使用时发现A写的类的功能有所欠缺,但是B没有权力改写A的文件,这时该怎么办? Function Person(name1,age1){ This.name=name1; This.age=age1; } Var p1=new Person(‘zhangsan’,30); p1.sex=’男’ B认为…
最近在系统的学习JS深层次内容,并稍微整理了一下,作为备忘和后期复习,这里分享给大家,希望对大家有所帮助.如有错误请留言指正,tks. 了解这些问题,我先一步步来看,先从稍微浅显内容说起,然后引出这些概念. 本文只用实例验证结果,并做简要说明,给大家增加些印象,因为单独一项拿出来都需要大篇幅讲解. 1.值类型 & 引用类型 function show(x) { console.log(typeof(x)); // undefined console.log(typeof(10)); // num…
目标一:深入理解高阶函数 高阶函数 1.1概念 Scala混合了面向对象和函数式的特性, 我们通常将可以做为参数传递到方法中的表达式叫做函数. 在函数式编程语言中,函数是“头等公民”, 高阶函数包含:作为值的函数.匿名函数.闭包.柯里化等等. 1.2作为值的函数(故名思议:函数的值作为返回值) 1.3匿名函数 在scala中,你不需要给每一个函数命名,没有将函数赋给变量的函数叫做匿名函数 由于scala可以自动推断出参数的类型,所以可以写的精简一些 还记的神奇的下划线吗?这才是终结方式 1.4将…
1. React developertools安装及使用 2. PropTypes与DefaultProps 讲一下PropTypes, 先拿TodoItem来说: 从几种类型中选: 3 props state 与 render函数的关系 页面是render函数渲染出来的 让props或者state发生变化的时候 会触发render函数发生变化 重新渲染 所以当父组件的状态发生变化的时候,接收状态的子组件也会发生变化 4. React中的虚拟DOM React中组件的重新渲染性能是非常高的,因为…
给你一个集合val list=List(1,2,3,4,"abc"),请完成如下要求 将集合list中所有的数字+1,并返回一个新的集合 要求忽略掉非数字的 object work5 { def main(args: Array[String]): Unit = { val list=List(1,2,3,4,"abc") val list2=list.map(addOne2) println("list2="+list2) } def addO…
let age = 22 let sex = "girl" if (sex == "girl" && age >= 18 && age <= 25){ print("女朋友") } else { print("走你") } swift2中为我们增加了一种新的语法: if case if case 18...25 = age { print("免费") } else…
创建索引 create [unique] index indexname on tablename(columnname(length)) alter tablename add [unique] index [indexname] on (columnname(length)) '删除' drop index [indexname] on tablename '显示表的所有索引' show index from tablename '该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NU…
泛型 泛型类 1 package day0603 2 3 class GenericClassInt { 4 private var content:Int=10 5 def set(value:Int)={content=value} 6 def get():Int={content} 7 } 8 9 class GenericClassString { 10 private var content:String="" 11 def set(value:String)={conten…
1.子查询概念 (1)就是在查询的where子句中的判断依据是另一个查询的结果,如此就构成了一个外部的查询和一个内部的查询,这个内部的查询就是自查询. (2)自查询的分类 1)独立子查询 ->独立单值(标量)子查询  (=) Select testID,stuID,testBase,testBeyond,testPro from Score where stuID=( select stuID from Student where stuName=’Kencery’ ) ->独立多值子查询  …
一. 简介 实体与实体之间有3种对应关系,这些关系也需要存储下来 在开发中需要对存储的数据进行一些处理,用到内置的一些函数 视图用于完成查询语句的封装 事务可以保证复杂的增删改操作有效 二. 关系 创建成绩表scores,结构如下 id 学生 科目 成绩 思考:学生列应该存什么信息呢? 答:学生列的数据不是在这里新建的,而应该从学生表引用过来,关系也是一条数据:根据范式要求应该存储学生的编号,而不是学生的姓名等其它信息 同理,科目表也是关系列,引用科目表中的数据 创建表的语句如下 create…
MyISAM 和 MEMORY 存储引擎支持表级锁定(table-level locking),InnoDB 存储引擎支持行级锁定(row-level locking),BDB 存储引擎支持页级锁定(page-level locking). 锁定语句 MySQL 的锁定语句主要有两个 Lock 和 unLock,Lock Tables 可用于锁定当前线程的表,就跟 Java 语法中的 Lock 锁的用法是一样的,如果表锁定,意味着其他线程不能再操作表,直到锁定被释放为止. ========>lo…
本课程主要讲解目前大数据领域最热门.最火爆.最有前景的技术——Spark.在本课程中,会从浅入深,基于大量案例实战,深度剖析和讲解Spark,并且会包含完全从企业真实复杂业务需求中抽取出的案例实战.课程会涵盖Scala编程详解.Spark核心编程.Spark SQL和Spark Streaming.Spark内核以及源码剖析.性能调优.企业级案例实战等部分.完全从零起步,让学员可以一站式精通Spark企业级大数据开发,提升自己的职场竞争力,实现更好的升职或者跳槽,或者从j2ee等传统软件开发工程…
Scala进阶之路-Scala中的高级类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.类型(Type)与类(Class)的区别 在Java里,一直到jdk1.5之前,我们说一个对象的类型(type),都与它的class是一一映射的,通过获取它们的class对象,比如 String.class, int.class, obj.getClass() 等,就可以判断它们的类型(type)是不是一致的.简单的说Type是用来描述类的,而Class是用来描述类的,因此Tpye范…