Scala
Scala语法
转行的炼丹师
这个作者很懒,什么都没留下…
展开
-
Scala 系列 - 模式匹配 Pattern Matching
本文主要介绍 Scala 中的模式匹配普通的模式匹配val a = 1val b = a match { case 1 => 'a' case 2 => 'b' case _ => 'c'}match 是表达式,不是语句,所以可以将 match 语句的值赋值给其他变量带守卫的模式匹配val a = 100val b = a match { case 1 => 'a' case 2 => 'b' case _ if a%10==0 =.原创 2020-05-31 14:18:58 · 285 阅读 · 0 评论 -
Scala 系列 - 包和引入
本文主要对 Scala 中的包和引入进行介绍包的引入// 导入Mapimport scala.collection.mutable.Map// 导入Map和Arraybufferimport scala.collection.mutable.{Map, Arraybuffer}// 重命名Mapimport scala.collection.mutable.{Map => Mymap}// 导入包下全部成员import scala.collection.mutable._.原创 2020-05-25 10:31:45 · 461 阅读 · 0 评论 -
Scala 系列 - apply/unapply/update/unapplySeq方法
apply 方法用括号传递给类实例或单例对象名一个或多个参数时,Scala会在相应的类或对象中查找方法名为apply且参数列表与传入参数一致的方法,然后执行class Car(name:String){ def info(){ println("Car name is" + name) }}object Car{ // 工厂方法 def apply(name:String) = new Car(name)}// 再创建类实例的时候就不用 new Car("xxx")了 直.原创 2020-05-31 11:03:17 · 395 阅读 · 0 评论 -
Scala 系列 - 跨行语句
本文主要介绍 Scala 中由于语句过长 需要跨行表示时候的方法当语句过长,一行写不下或者由于其他原因导致需要写跨行语句的时候,怎样做到语法以及语义正确呢?如果直接写成expression + expression会被解释成expression; + expression显然与我们的目的不符,我们可以使用如下两种方式完成(expression + expression)或者// 把操作符放在上一行后 告诉解释器我们语句还没有写完expression + expres.原创 2020-05-21 19:23:17 · 989 阅读 · 0 评论 -
Scala 系列 - Value definition
本文主要对 Scala 中的 Value definition 的方法进行介绍变量定义可以用两种方式进行,第一种使用def关键字,第二种使用val或者var关键字。区别在于使用def关键字定义的变量,在每次变量被使用的使用的时候再计算它的值,就像调用函数一样,可以把def关键字定义的变量理解为是一个没有参数省略了返回值类型的函数而使用val或者var关键字定义的变量,在定义的时候就把它的值计算出来了。如下图所示,...原创 2020-05-21 16:33:06 · 361 阅读 · 0 评论 -
Scala 系列 - 函数
本文主要对 Scala 中的函数进行介绍匿名函数在 Scala 中不需要给每一个函数命名,就像是不需要给每一个数字命名一样。和 Python 中的 lambda 表达式有些相似// 匿名函数 把传入的参数乘3(X : Int) => 3 * X// 可以赋值给某个变量val func = (x: Int) => 3*xval a = Array(1,2,3)// 以下三种写法等价 将a中的每个元素乘3a.map(func)a.map((x: Int) => 3.原创 2020-05-22 23:48:19 · 155 阅读 · 0 评论 -
Scala 系列 - 标识符与操作符
本章主要操作符的相关概念以及实现自己的操作符的方法标识符变量,函数和类等的名称统称为标识符。在 Python 中,标识符都是字母和数字字符的序列,以字母或者下划线开头。Scala 可以使用 Unicode 字符,例如如下定义都是合法的val ** = 1val ∮ = 2再例如我们都知道的1->2表达式,相当于1.->(2),方法名为->...原创 2020-05-23 19:38:22 · 319 阅读 · 0 评论 -
Scala 中的几种打印方式
本文主要总结Scala中的几种打印方式println("type 2")// 不换行print("type 2")val a = "type 2"println(s"$a")println(s"${a}")printf("%s", a)printf("%s".format(a))以上几种方式均可以成功打印字符串 "type 2"原创 2020-05-15 22:36:55 · 2726 阅读 · 0 评论 -
Scala 系列 - 特质 Trait
本文主要对Scala中特质的概念与使用进行介绍特质是Scala里面代码复用的基础单元。Scala 不允许一个类从从个超类继承,只能继承唯一的超类,而可以有任意数量的特质。原创 2020-05-16 16:01:43 · 220 阅读 · 0 评论 -
Scala 系列 - 类
本文主要介绍scala中的类和对象类的定义方式// 定义counter类class counter{var value = 0// Unit指没有返回值// 返回值为Unit时候可以将 :Unit= 省略,但是后面大括号不能省略// 下面语句等价于 def increment(step:Int){value += step}def increment(step:Int):U...原创 2020-05-02 17:26:59 · 275 阅读 · 0 评论 -
Scala 系列 - 数据结构
本文主要对scala语言的数据结构进行介绍数组 Array元素具有相同类型// []中给出数组类型 ()中给出数组元素个数val ARR = new Array[Int](3)// 下标从0开始ARR(0) = 10// 自动推断类型val Arr = Array(1,2,3)// 高维数组 3行4列val Matrix = Array.ofDim[Int](3...原创 2020-05-01 16:21:22 · 170 阅读 · 0 评论