
Scala
_东极
少年锦时
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Scala控制结构和函数
在Scala中 ,几乎所有语法结构都有值If elses为什么有值?If 语句的返回类型取决于最后一条语句。语句后面的分号不是必须的Scala 没有三元运算符,不需要,if else替代了三元运算符If 表达式会有一个返回值类型,如果 if 或者 else 返回的类型不一样,就返回 Any 类型(所有类型的公共超类型)如果缺少一个判断,什么都没有返回,但是 Scala 认为任何...原创 2018-12-02 12:10:20 · 374 阅读 · 0 评论 -
scala中的样例类和样例对象
文章目录样例类样例对象样例类支持模式匹配,默认实现了serializable接口定义为 case class 类名(属性:类型,…),类的命名必须是驼峰式的case class Message(sender: String, content: String)object TestCalseClass { def main(args: Array[String]): Unit = {...原创 2019-07-28 18:51:10 · 947 阅读 · 0 评论 -
scala中的final和type
文章目录finaltypefinalfinal修饰的类不能被继承,修饰的方法不能被重写,成员变量不能被修改typetype修饰的类相当于取别名的作用trait Bike { type T def user(s :T)={ println(s) }}object Transformat extends Bike { type T = String def ...原创 2019-07-28 18:37:07 · 444 阅读 · 0 评论 -
scala中的特质trait和抽象类
文章目录特质 Trait特质 Trait相当于java中的接口,可以定义有实现的方法,也可以定义没有实现的方法trait Animal { def speak()}object Zoo extends Animal { def main(args: Array[String]): Unit = { speak() } override def speak(): ...原创 2019-07-28 15:21:24 · 532 阅读 · 0 评论 -
scala中类的定义以及访问权限,伴生类和对象
文章目录构造器类的访问权限类的成员属性访问权限类的构造器访问权限类的访问权限构造器在scala中定义类用class修饰,这个类默认有一个空的构造器,定义在类的名称后面的构造器为主构造器,类的主构造器中的属性会定义为类的成员比变量,class Student(name: String, age: Int) { var sex: String = _ //定义一个辅助构造器 def th...原创 2019-07-28 13:17:28 · 697 阅读 · 0 评论 -
scala的Object和apply方法
文章目录ObjectapplyObject在scala中没有static,使用关键字Object来实现单例模式,Object对象不能带参数可以通过对象.方法或者对象.成员变量apply对于apply方法,可以直接调用,不用对象.方法名(又名:语法糖)package Onedayhelloscalaobject TestApply { def apply(food:String) ...原创 2019-07-28 11:26:32 · 835 阅读 · 0 评论 -
scala中Set,Map.元组的使用
文章目录SetMap元组SetSet不可重复,不可变HashSet 不可重复,可变对于里面添加元素 .+= 删除元素用 .-=Map定义 val map = Map[String,Int]("a" -> 97)同理可以用元祖的方式定义 val map = scala.collection.mutable.HashMap(("a",97))也可以用 .+= ...原创 2019-07-28 10:21:11 · 443 阅读 · 0 评论 -
scala中集合的基本操作
文章目录变长集合Seq序列::+::+集合的常用方法sortedsortBysortWithgroupedfoldreduceaggregate交并差集head,tailzipmkStringslicesum重点掌握scala的集合有三大类:序列Seq,集Set,映射Map.所有的集合都扩展自Iterable特质,在scala中集合分为可变(mutable)和不可变(immutable)两种类型...原创 2019-07-28 00:23:23 · 1115 阅读 · 0 评论 -
scala中的数组,map,flatten,flatMap,foreach的基本操作
文章目录数组:mapflattenflatMapforeachworldcount数组:val array = new Array[Int](4) //数组的声明array(0) = 1array(0) = 100 //数组的长度不可变,内容可变map将数组中的每个元素进行某种映射操作 val array = Array[Int](2,3,5,6,7) //使用 val y =...原创 2019-07-27 17:33:17 · 3184 阅读 · 0 评论 -
scala的可变参数,参数默认值,高阶函数,柯里化,偏函数
文章目录可变参数参数的默认值高阶函数柯里化可变参数在参数类型后面加上*即可,注意可变参数必须放在参数列表的最后面 def add(ints: Int*): Int = { var sum = 0 for (v <- ints){ sum += v } sum }参数的默认值 def reduce(a:Int = 4,b:Int ...原创 2019-07-27 15:53:48 · 797 阅读 · 0 评论 -
scala的for循环和yeild
文章目录for循环for循环语法结构: for(i <- 表达式/数据/集合)用下标遍历的方法for里面可以增加守卫双层for循环yeildfor循环for循环语法结构: for(i <- 表达式/数据/集合)val arr = Array(1,2,3,4,5) for (ele <- arr){ print(ele+" ") }用下标遍历的方法val ar...原创 2019-07-23 00:05:30 · 464 阅读 · 0 评论 -
scala的数据类型 print if表达式
文章目录数据类型print==最常用==if表达式数据类型scala和java相同,有7种数据类型Byte,Char,Short,Int,Long,Float和Double,Boolean Unit 类型注意 : Unit表示无值,和其他语言中void等同,用作不返回任何结果类型。Unit只有一个实例值,写作()以上9种都是AnyVal类型,其余的是AngRef类型print可以不用j...原创 2019-07-22 23:42:43 · 892 阅读 · 0 评论 -
scala中的隐式转换
文章目录隐式详解隐式参数隐式类型隐式详解调用别人的框架的时候,少了一些方法,需要添加,让别人为你添加不现实scala> implicit def doubleInt(d : Double) = d.toIntscala> val a : Int = 3.14a: Int = 3隐式参数def say(implicit content : String) = printl...原创 2019-07-30 00:12:26 · 302 阅读 · 0 评论 -
scala的方法和函数
文章目录基本方法的声明函数表达基本方法的声明def fun(x : Int, y:Int) : Int = x +ydef 关键字.fun : 方法名 ,x,y为方法参数,方法的返回类型可以不写,编译器自动推断,对于递归函数 必须声明其返回类型将方法转换为函数scala> fun(2,4)res0: Int = 6scala> fun _res2: (Int, I...原创 2019-07-23 23:54:07 · 277 阅读 · 0 评论 -
Scala基础
声明值和变量一个用 val,一个用 varval 定义的值是不可变的,类似于一个常量注 : var 和 和 val 关键字只标识引用本身是否可以指向另一个不同的对象,它们并未表明其所引用的对象是否可变。为了减少可变性引起的 bug ,应该尽可能地使用不可变变量。 变量类型可以省略, 解析器会根据值进行推断,val 和 和 var声明变量都要初始化Scala 中,所有的值都是类对象,而...原创 2018-12-01 22:02:39 · 290 阅读 · 0 评论 -
Scala基本了解
What is ScalaScala 产生于瑞士的洛桑联邦理工学院(EPFL),是“可扩展语言”(Scalable Language)的缩写,Sala 是一门静态类型语言名词解释:静态类型语言 :编译期间会发生类型检查,一般是构建比较复杂的架构动态类型语言运行期间发生类型检查按照JAVA虚拟机为目标运行环境并将面向对象和函数式编程最佳的特性结合的一门编程语言,可以访问Java类库...原创 2018-12-01 21:22:38 · 747 阅读 · 0 评论 -
Scala中的Map
//不可变构造映射val scores = Map("Alice" -> 10,"Bob" -> 3,"Cindy" -> 8)//可变映射val scores2 = scala.collection.mutable.Map("Alice" -> 10,"Bob" -> 3,"Cindy" -> 8原创 2018-12-03 02:00:27 · 2431 阅读 · 0 评论 -
Scala中集合和数组
主要集合特质Scala支持可变集合和不可变集合,不可变集合从不可变,可以安全并发访问主要包: 不可变集合: scala.collection.immitable 可变集合:scala.collection.mutablescala优先采用不可变集合: 序列(list),集(set),映射(Map),所有的集合都扩展Iterable特质,对于所有集合类,Scala 都同时提供了可变...原创 2018-12-02 20:09:11 · 741 阅读 · 0 评论 -
scala中的模式匹配
文章目录模式匹配匹配内容类型的匹配数组的匹配匹配list匹配元组匹配样例类模式匹配一旦一个case匹配上了,就不会再往下匹配匹配内容def main(args: Array[String]): Unit = { def contentMatch(str: String) = str match { case "hello" => println("HELLO") ...原创 2019-07-28 21:39:27 · 433 阅读 · 0 评论