Scala
文章平均质量分 59
Ayanha
这个作者很懒,什么都没留下…
展开
-
隐式转换与泛型
一、隐式转换隐式转换分为隐式函数、隐式参数、隐式类。隐式转换就是编译器在第一次编译出错时,自己进行二次编译,找到可以正确编译的方法,从而实现功能首先,编译器会在脚本的当前作用域范围内寻找并调用可以实现目标功能的转换规则(隐式函数/隐式类)其次,若在当前作用域没找到隐式类/隐式函数,就会在隐式参数对应的类型的作用域中查找并调用可用的转换规则隐式函数隐式函数可以扩展某个类的功能,编译器会在当前作用域内寻找并调用实现目标功能的转换规则,从而自己进行二次编译,实现隐式转换object Main {原创 2021-05-21 15:58:44 · 194 阅读 · 0 评论 -
模式匹配Match...case...
模式匹配:即if…else…平铺式表达,用match关键字匹配,用case限定模式,case _代表不匹配的情况下返回值模式守卫:即模式匹配中可以使用if条件限定范围,match{case … if … => …}match{case 条件1 =>{函数体};case 条件2 =>{函数体};case _ =>{函数体}}例:定义一个计算方法object Main extends App { val a:Double = 1 val b:Double原创 2021-05-20 18:33:23 · 561 阅读 · 1 评论 -
WordCount实例
1、取单词出现次数最多的前三个单词object Main extends App { val list1 = List("hello scala","hello cindy","hello alice","scala cindy","scala alice","hello") val list2 = list1.flatMap(_.split(" ")) println(list2) val list3 = list2.groupBy(i => i) prin原创 2021-05-17 12:04:42 · 285 阅读 · 0 评论 -
scala集合之运算函数
创建集合Map(a -> 2, b -> 1)List((a,2), (b,3), (c,1))Set(1, 3, 5, 6)1,2,3object Main extends App { val map = Map("a" -> 2,"b" -> 1) val list = List(("a",2),("b",3),("c",1)) val set = Set(1,3,5,6) val arr = Array(1,2,3)}求和:.原创 2021-05-13 20:32:54 · 455 阅读 · 1 评论 -
元组
元组就是可以存放不同类型元素的集合,每个元组最多只能存放22个元素,且元组可嵌套。元组直接用 () 创建,用元组._i访问,i为元素序号,从1开始。object Main extends App { //创建元组 val tuple = (1,"a",Map("b" -> 2).get("b"),Set(4,6,5).mkString("-"),Array(1,2,3).mkString("-"),List(2,3),("y",5)) println(tuple)原创 2021-05-12 12:02:55 · 158 阅读 · 0 评论 -
scala集合常用函数
一、元组元组就是可以存放不同类型元素的集合,每个元组最多只能存放22个元素,且元组可嵌套。元组直接用 () 创建,用元组._i访问,i为元素序号,从1开始。object Main extends App { //创建元组 val tuple = (1,"a",Map("b" -> 2).get("b"),Set(4,6,5).mkString("-"),Array(1,2,3).mkString("-"),List(2,3),("y",5)) println(tuple)原创 2021-05-12 12:01:47 · 315 阅读 · 1 评论 -
Scala集合之Set与Map
一、SetSet默认为不可变、无序、无重复项的集合;可变Set需要引入scala.collection.mutable.Set包Set直接创建即可Set/scala.collection.mutable.Set(),也可以直接输出集合形式1、不可变Setobject Main extends App { //创建,输出是无序的 val set = Set(1,3,2,5) println("set:" + set) //添加,无序集合,所以添加元素的位置是可原创 2021-05-11 16:56:20 · 123 阅读 · 0 评论 -
scala集合之Array与List
不可变集合指的是集合对象的存放地址、集合大小与类型、占用内存空间不可修改,只可以修改元素。若增删元素,则每次增删后会产生新对象,原有对象不会改变可变集合指的是集合对象的存放地址、集合大小与类型、占用内存空间都可以修改,每次修改后不会产生新对象。对可变集合的操作尽量不要重新赋予新变量,因为新变量改变后,原变量也会随之改变。可变集合包:scala.collection.mutable不可变集合包:scala.collection.mutable数组就是常见的下标与元素一一对应的集合,也分为可变与不可变,原创 2021-05-10 16:58:44 · 1398 阅读 · 0 评论 -
类型-scala扩展
自身类型指定自身类型相当于继承(指定父类或特质),指定后即可使用自身类型的属性_:自身类型 =>object Test { def main(args:Array[String]):Unit= { val user = new RegisterUser("alice","1234") user.insert() } }//类,用户class User(val name:String,val password:String)//特质trait UserDo{ th原创 2021-05-08 18:41:38 · 99 阅读 · 0 评论 -
面向对象实操
一、scala包面向对象编程,可以建立scala包来管理类和对象。同名的类放到不同包就可以加以区分;类很多时,不同类可以放到一个包中进行管理,相当于把多个类进行了归纳。包定义:package 包名包命名规则:字母、数字、下划线,但不能以数字开头。也不能包含关键字。用圆点实现不同级别包的命名包管理:每个源文件一个包,包名用圆点分隔以表示层级关系;(eg:com.test.byy_1)每个源文件多个包,通过嵌套关系表示包的层级关系,子包可以直接调用父包内容,无需导包eg:package co原创 2021-05-08 18:39:14 · 88 阅读 · 0 评论 -
scala函数实操
一、函数式编程函数定义:def 函数名(参数名1:参数类型,参数名2:参数类型,...):函数返回值类型={ 函数体}函数与方法的区别函数和方法其实差不多,都是为实现某一特定功能编写的脚本,都可以用def定义 函数可以直接调用,因为函数就是对象(也可以说函数就是一个变量)方法调用的时候必须要加对象名,因为方法只能在特定类或者对象中定义(类/对象中的函数就叫做方法)注意:函数和方法都要在一个对象(代码块)中编写函数简化函数默认最后一行为返回值,可以省略return 函数体只有一行时原创 2021-04-29 18:34:12 · 118 阅读 · 0 评论 -
scala基本语法
一、字符串拼接+号拼接字符串用%传值获取变量值:printf()输出字符串(%d整型、%s字符串)注:printf()默认不换行,所以其后的脚本需要换行的话加个println()通过$获取变量值:println(s"${变量}字符串")字符串模板格式化模板字符串:println(f"字符串${变量}%变量格式")所有内容都输出为字符串:println(raw"") 三引号内字符串,可多行输出object test_string{ def main(args: Array[String])原创 2021-04-28 20:55:01 · 555 阅读 · 0 评论 -
Scala_Tips
一、Scala简介Scala是以JVM为运行环境的高级静态类型语言,在java的基础上结合了面对对象和函数式编程,对java有很好的兼容性,可以调用java类库。Scala执行流程:源码文件、编译解码、JVM运行新建源码文件编译解码为在JVM上运行示例://在本地桌面创建并编辑源码文件Scala.Scalaobject Scala{ def main(args: Array[String]): Uint = { println("hello Scala") }}//在命令行窗原创 2021-04-28 18:16:23 · 64 阅读 · 0 评论