
Scala
屡傻不改
这个作者很懒,什么都没留下…
展开
-
Scala之单词计数、排序
单词计数scala> val stringList = List(“hello world hello gree”,“hello java hello scala”, “hello wenwen hello kb09”)scala> stringList.flatMap(x=>x.split(" ")).map(x=>(x,1)).groupBy(x=>x._1).map(x=>(x._1, x._2.size))排序正序排序:scala> string原创 2020-10-30 14:50:35 · 476 阅读 · 0 评论 -
Scala之Array方法集
参考博客:https://blog.youkuaiyun.com/zyp13781913772/article/details/81428862Scala:Array(集合、序列)数组是一种可变的、可索引的数据集合。在Scala中用Array[T]的形式来表示Java中的数组形式 T[]。val arr=Array(1, 2, 3, ) //声明一个数组对象val first=arr(0) // 读取第一个元素arr(2)=100 // 替换第三个元素为100方法一:arr.map(x=>x*2)原创 2020-10-29 16:58:39 · 884 阅读 · 0 评论 -
Scala JDBC 操作 MySQL
文章目录表结构依赖代码MysqlDemoCRUD测试参考表结构在mysql中创建数据库scalademo,在库中创建表studentCREATE TABLE student(id INT(10) PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR(32),age INT(10))插入数据测试INSERT INTO student(`name`,age) VALUES("张三",18),("李四",21)依赖如果创建的工程是Maven工程,则需要添加原创 2020-10-29 14:35:22 · 275 阅读 · 0 评论 -
Scala部分函数、偏函数
部分函数部分应用函数(Partial Applied Function)是缺少部分参数的函数,是一个逻辑上概念。例如:def sum(x: Int, y: Int, z: Int) = x + y + z,当调用sum的时候,如果不提供所有的参数,或者只提供某些参数时,比如sum _ , sum(3, _: Int, :Int), sum(: Int, 3, 4), 这样就生成了所谓的部分应用函数。案例: def showMsg(title:String, content:String, num:原创 2020-10-26 16:57:53 · 203 阅读 · 0 评论 -
伴生类、伴生对象
参考博客:https://blog.youkuaiyun.com/m0_48758256/article/details/109241456伴生(Companion)1、单例对象与同名类定义在同一文件中时形成绑定关系同名类称为单例对象的伴生类(class)单例对象称为同名类伴生对象(object)2、伴生类与伴生对象可相互访问各自私有成员3、伴生对象可为伴生类增加静态成员伴生类与伴生对象案例:前提:同一个文件的class和object 名字相同伴生类和伴生对象在同一个文件中,名字相同,cl原创 2020-10-26 16:51:54 · 3609 阅读 · 0 评论 -
Scala特质
章节目录特质(trait)混入特质(mixin)动态混入特质特质与抽象类的选择特质(trait)Scala中没有接口(interface)的概念特质用于在类之间共享程序接口和字段,类似Java接口特质是字段和方法的集合,可以提供字段和方法实现类和单例对象都可以扩展特质(extends)特质不能被实例化,因此没有构造参数,类似Java接口特质使用“trait”关键字定义实现特质中的方法使用“override”混入特质(mixin)当某个特质被用于组合类时,被称为混入一个类只能有一个父类但原创 2020-10-26 16:28:15 · 267 阅读 · 1 评论 -
型变(协变、逆变、不变)、泛型类
型变一、协变class Covariant[+T]{ }对于两种类型 A 和 B,如果 A 是 B 的子类型,那么 Covariant[A] 就是 Covariant[B] 的子类型二、逆变class Inversion[-T]{ }对于两种类型 A 和 B,如果 A 是 B 的子类型,那么 Inversion[B] 就是 Inversionr[A] 的子类型三、不变class Invariant[T]{ }默认情况下,Scala中的泛型类是不变的如下图所示:案例:package原创 2020-10-26 16:04:22 · 1025 阅读 · 0 评论 -
Scala样例类
样例类(case class)一、样例类常用于描述不可变的值对象(Value Object)二、定义语法:1、样例类构造参数默认声明为“val”,自动实现类构造参数的getter2、样例类构造参数声明为“var”时,自动实现类构造参数的setter和getter3、样例类自动创建伴生对象4、样例类自动实现的其他方法a)toString()、equals()、copy()、hashCode()b)伴生对象中的apply()、unapply()注:unapply()接受一个对象,从对象中提取原创 2020-10-26 15:23:13 · 3211 阅读 · 0 评论 -
scala隐式参数、隐式函数、隐式类详解
scala关键字"implicit"详解隐式参数定义示例隐式函数定义示例类型转换类型增强隐式类定义示例隐式参数定义1、定义一个普通变量,使用 implicit 关键字修饰,定义一个函数调用这个变量当参数时,此时这个参数就被称为隐式参数2、隐式参数的作用:减少提供函数参数的数量,让某些参数拥有隐藏的值(隐式变量)示例def main(args: Array[String]): Unit = { //隐式参数(每种类型只能有一个) implicit var a:Int = 10原创 2020-10-26 14:42:09 · 728 阅读 · 0 评论 -
Scala匿名函数、柯里化
章节目录匿名函数Scala柯里化一、实例二、实现过程三、案例匿名函数1、指不含函数名称的函数2、匿名函数定义: a)"=>“左边为参数列表b)”=>"右边为函数体c)如果函数体包括多条语句,应使用“{}”包含案例://匿名函数val aa = (a:Int, b:Int) => a+bval bb=aaprintln(aa(5,2))println(bb(3,7))val a:Int = 10val sum1:(Int,Int) => Int =(a原创 2020-10-21 15:33:20 · 322 阅读 · 0 评论 -
Scala模式匹配
章节目录Scala模式匹配样例类Scala模式匹配Scala 提供了强大的模式匹配机制,应用也非常广泛。一个模式匹配包含了一系列备选项,每个都开始于关键字 case。每个备选项都包含了一个模式及一到多个表达式。箭头符号 => 隔开了模式和表达式。案例:def method1(x:Int):String={ if (x==1){ "one" }else if (x==2){ "two" }else{ "many" }}//模式匹配--简化代码de原创 2020-10-21 15:25:55 · 186 阅读 · 0 评论 -
Scala数组、元组、集合
章节目录Scala数组Scala元组Scala集合不可变集合可变集合常用集合Scala List常用操作Scala List 排序方式Scala Set常用操作Set集合求交、并、差集Scala Map常用操作Scala Stream & VectoScala数组存储固定大小的元素数组索引从0开始#数组创建方式一:案例:var array:Array[String] = new Array[String](3)array(0) = "hello"array(1) = "worl原创 2020-10-20 17:10:51 · 792 阅读 · 0 评论 -
Scala变量、数据类型与程序控制
章节目录Scala变量与数据类型Scala变量与常量Scala数据类型Scala程序控制条件控制条件语句返回值循环控制Scala变量与数据类型Scala变量与常量一、变量赋值后可以改变,生命周期中可以被多次赋值#语法:var 变量名称:类型=xxx注:一般无需显示指定类型,Scala编译器会自动推断出类型使用类型别名定义变量:type关键字#语法:type 类型别名=类型二、常量赋值后不可变,类似与Java中的final变量#语法:val 常量名称:类型=xxx三、Scala关原创 2020-10-19 16:16:20 · 156 阅读 · 0 评论 -
Scala简介与环境搭建
章节目录Scala概论Scala简介Scala概述Scala开发环境搭建安装Scala编译器Scala开发环境Scala概论Scala简介1、Scala源自JavaScala构建在JVM之上Scala与Java兼容、互通2、Scala的优势多范式编程:面向对象编程、函数式编程表达能力强,代码精简3、大数据与ScalaSpark采用Scala语言设计a)提供的API更加优雅b)基于JVM的语言更融入Hadoop生态圈Scala概述1、面向对象特性a)每个值都是对象原创 2020-10-19 14:31:32 · 150 阅读 · 0 评论