scala
scala学习
XING_Gou
hey,don't forget to achieve your dream !
展开
-
Scala | Scala隐式转换机制
Scala隐式转换机制概述scala implicit关键字详解(隐式转换函数、隐式类、隐式参数、隐式值),implicit是scala中的一个关键字,关于它有着丰富的用法,使得scala更灵活和容易扩展。implicit def int2str(x:Int):String = x.toString这段代码声明了一个函数int2str,它与正常函数唯一的区别在于前面多出的implicit关键字。这里的implicit就是它字面的含义——隐式,它告诉编译器,这个函数是一个隐式转换函数,能够把Int类原创 2020-08-07 09:25:36 · 306 阅读 · 0 评论 -
Scala | Scala集合的综合练习
综合练习:val l1=List((“tom”,“M”,23),(“rose”,“F”,18),(“jim”,“M”,30),(“jary”,“M”,25))练习1:统计出所有人的年龄和练习2:返回男性年龄最高的前两个人的数据,返回的形式:List(“jim-M”,“jary-M”)val l2=List((“bj”,1),(“sh”,2),(“bj”,3),(“sh”,4))练习3:操作l2,返回按地区分组的结果val l3=List(“hello world”,“hello scal原创 2020-08-04 09:07:02 · 723 阅读 · 0 评论 -
Scala | Tuple - 元组类型
Tuple - 元组类型与列表一样,元组也是不可变的,但与列表不同的是元组可以包含不同类型的元素。目前 Scala 支持的元组最大长度为 22。对于更大长度你可以使用集合,或者扩展元组。元组取值,通过._下标取值;注意:元组的下标从1开始通过 Tuple.swap 方法来交换元组的元素(只能两两交换)object Demo8 { println("Welcome to the Scala worksheet") //> Welcome to the Scala works原创 2020-08-03 10:23:48 · 514 阅读 · 0 评论 -
Scala | 学习Scala中的Set和Map
学习Scala中Set和Mapobject Demo07 { println("Welcome to the Scala worksheet") //> Welcome to the Scala worksheet //创建定长Set val s1=Set(1,1,2,2,3) //> s1 : scala.collection.immutable.Set[Int] = Set(1, 2, 3) //创建变原创 2020-08-01 09:36:22 · 218 阅读 · 0 评论 -
Scala | Array和List中通用且重要的方法
Array和List中通用且重要的方法1.max2.min3.sum4.take5.takeRight6.drop7.dropRight8.head9.last10.union 并集11.intersect 交集12.diff 差集13.distinct14.mkString15.reverse16.filter17.map18.sortBy19.reduce20.flatMap21.groupBy重点掌握:① filter ② map ③sortBy ④原创 2020-07-30 15:11:37 · 242 阅读 · 0 评论 -
Scala | 集合类型(Collection)
集合类型 - Collectionscala的集合类型(Collection)包含如下常见的类型:Array,List,Set,Range,Iterator,Map,Tuple知识点:scala的Array分为定长数组和变长数组定长:immutable变长:mutable通过下标操作Array,下标从0开始。通过(index),不同于java的[index]object Demo03 { println("Welcome to the Scala worksheet")原创 2020-07-30 09:08:47 · 265 阅读 · 0 评论 -
Scala | Option类型
Scala的Option类型知识点:Option为选择类型,有两个子类:①Some ②None如果程序运行正确,则返回Some类型。如果程序运行失败或可能产生异常,则返回NoneOption类型的取值,使用getOrElse(default)。如果是Some,则获取Some里的数值。如果是None,则返回指定的默认值scala支持lazy 懒值机制。声明时不是马上赋值,而是待到被调用时,才会赋值注意:lazy只能修饰常量 val,不能修饰变量varobject Demo02 {原创 2020-07-29 09:09:44 · 283 阅读 · 0 评论 -
Scala | case class - 样例类
case class - 样例类知识点:只要在声明类时 在class关键字前加上case关键字 这个类就成为了样例类样例类必须要显式的声明一个主构造器当样例类声明一个主构造器后,会默认隐式的声明一个空构造器样例类默认实现序列化接口样例类默认自动覆盖 toString 方法,方便对对象进行打印输出样例类不需要new可以直接生成对象注意:后续开发程序时,习惯上使用case class来封装beancase class Item(title:String,price:Do原创 2020-07-28 16:16:51 · 308 阅读 · 0 评论 -
Scala | 类(下篇)
类(下篇)1、抽象类Scala中同样支持抽象类的使用,抽象类的内部可以包含抽象方法和非抽象方法。Scala不允许被实例化,抽象类主要是用来被继承的Demo01:abstract class Teacher { //抽象方法 def makeNote(note:String):String //抽象方法 def teach():Unit //普通方法 def say()={ }}//ctrl+1 -> 显示出要重写的方法//通过with混入trai原创 2020-07-28 09:28:12 · 114 阅读 · 0 评论 -
Scala | 类(上篇)
类(上篇)概述Scala中的类和java中基本类似Scala中的类同样通过class来进行生命Scala中的类同样可以具有成员变量和成员方法Scala中的类同样通过new关键字来创建出对象1、创建类Demo01://创建一个类,并定义类里的两个成员变量name和age。以及一个成员方法 eat()//需要注意的是:scala中变量(var)声明时需要指定初始值, class Person { var name:String=""; var age:Int=0; d原创 2020-07-27 16:23:16 · 162 阅读 · 0 评论 -
Scala | 柯里化 Currying
柯里化 Currying柯里化(Currying)技术 Christopher Strachey 以逻辑学家 Haskell Curry 命名的(尽管它是 Moses Schnfinkel 和 Gottlob Frege 发明的)。它是把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数且返回结果的新函数的技术。知识点:scala底层支持柯里化技术,柯里化技术来自于函数式编程可以将接收多个参数的函数转变为接收单一参数的函数通过柯里化,允许用户自建控制结构,使得调用层次更加清晰原创 2020-07-27 09:00:10 · 167 阅读 · 0 评论 -
Scala | Scala的递归函数
Scala的递归函数知识点:scala递归函数的返回值类型必须显示声明编写递归函数掌握两要素:①找出项与项之间的函数关系②找出结束条件scala递归函数,结束条件的返回值,必须用return返回object Demo01 { println("Welcome to the Scala worksheet") //> Welcome to the Scala worksheet //给定一个斐波那契数列:2 3 5 8 13 21 ... //编写一个递归原创 2020-07-25 14:03:30 · 675 阅读 · 0 评论 -
Scala | Scala的四种函数种类
Scala的四种函数种类知识点:scala的函数种类可分为4种:①成员函数,函数定义在类的内部,作为类的成员,即为成员函数②本地函数,定义在函数内的函数,即为本地函数重点:③匿名函数,特点:没有函数名;通过=>来连接参数列表和方法体关键是匿名函数的作用:匿名函数可以当做参数进行赋值 ,比如:val f2=(a:Int,b:Int)=>{a+b}匿名函数可以当做参数进行传递,比如:def f3(a:Int,b:Int,f:(Int,Int)=>Int)={f(a,b)}原创 2020-07-25 09:09:21 · 1004 阅读 · 0 评论 -
Scala | Scala函数的声明和使用
Scala函数的声明和使用知识点:定义一个scala函数的基本结构: def 函数名(参数列表):函数的返回值={方法体代码}通用规则:scala会将方法体最后一行代码作为返回值返回,不需要加return关键字通用规则:如果方法体只有一行代码,则方法体{}可以省略函数默认的访问权限是public,此外也可以通过private,protected来修饰访问权限函数前可以用override,final来修饰scala可以根据函数的返回值自动推断出函数的返回值类型注意:原创 2020-07-24 19:19:46 · 591 阅读 · 0 评论 -
Scala | Scala基础语法二
1、if…else判断语句知识点:scala的if else 用法及结构同javascala的if else 有返回值的,可以接sacla的返回值,不需要加return关键字通用规则:scala会将方法体{}最后的一行代码当作返回值返回println():打印并换行println():打印不换行scala的Unit,类比于java的void,即空类型scala的打印函数返回值类型为Unit(空类型)scala通用的简化规则:如果方法体{}中只有一行代码,则{}可以省略object原创 2020-07-24 14:12:09 · 240 阅读 · 0 评论 -
Scala | Scala基础语法一
知识点一:eclipse更改字体:window->preference->color and font->下拉basic->text font->点击Edit编辑->修改字体scala worksheet 是IDE工具提供的交互式编译模式,左侧写代码,右侧出结果,一般用于测试练习想看结果,需要保存文件。快捷键:ctrl+sscala的变量和常量变量:var(variable的缩写),变量声明后可以修改常量:val(value的缩写),常量一经声明,不原创 2020-07-24 09:01:46 · 376 阅读 · 0 评论 -
Scala | Scala Windows运行环境配置及使用
Scala Windows运行环境配置及使用实现步骤:双击运行安装添加scala安装目录的bin目录到系统环境变量中通过cmd命令窗口,输入scala交互模式可以通过命令行直接输入scala命令,比如:编译模式也可以先编写 ***.scala文件,通过执行文件来执行命令,比如:先在e盘下创建一个hello.scala文件print("hello scala");然后通过cmd执行:也可以先生成 .scala文件,再编译生成 .class 文件,再执行。原创 2020-07-23 16:08:57 · 410 阅读 · 0 评论 -
Scala | Scala介绍
Scala介绍官网对scala的介绍:Scala既是面向对象的语言,也是面向函数的语言。scala可以为你在做大量代码重用和扩展是提供优雅的层次结构,并可以通过高阶函数来实现这样的目标。(高阶函数是函数式编程里的特性之一,允许函数作为参数传递,也允许函数作为返回值来返回)Scala创始人 Martin Odersky马丁·奥德斯基Martin是EPFL(瑞士领先的技术大学,洛桑联邦理工学院)编程研究组的教授。他在整个职业生涯中一直不断追求着一个目标:让写程序这样一个基础工作变得高效、简单、且令人愉原创 2020-07-23 16:08:28 · 827 阅读 · 1 评论