
scala
文章平均质量分 52
qwy715229258163
这个作者很懒,什么都没留下…
展开
-
14-scala单例对象
一个单例对象是就是一个值。单例对象的定义方式很像类,但是使用关键字objectobject Box方法info可以在程序中的任何地方被引用。像这样创建功能性方法是单例对象的一种常见用法。下面让我们来看看如何在另外一个包中使用info因为 import 语句,方法info在此处是可见的。import语句要求被导入的标识具有一个“稳定路径”,一个单例对象由于全局唯一,所以具有稳定路径。注意:如果一个object。原创 2025-04-15 00:13:56 · 404 阅读 · 0 评论 -
13-scala模式匹配
模式匹配是检查某个值(value)是否匹配某一个模式的机制,一个成功的匹配同时会将匹配值解构为其组成部分。它是Java中的switch语句的升级版,同样可以用于替代一系列的 if/else 语句。原创 2025-04-14 23:55:56 · 421 阅读 · 0 评论 -
12-scala样例类(Case Classes)
一个最简单的样例类定义由关键字case class注意在实例化样例类Book时,并没有使用关键字new,这是因为样例类有一个默认的apply方法来负责对象的创建。当你创建包含参数的样例类时,这些参数是公开(public)的val")你不能给重新赋值,因为它是一个val(不可变)。在样例类中使用var也是可以的,但并不推荐这样。原创 2025-03-24 15:24:25 · 414 阅读 · 0 评论 -
11-scala多参数列表(柯里化)
方法可以定义多个参数列表,当使用较少的参数列表调用多参数列表的方法时,会产生一个新的函数,该函数接收剩余的参数列表作为其参数。这被称为。下面是一个例子,在Scala集合定义了从左到右,以此将一个二元运算op应用到初始值z和该迭代器(traversable)的所有元素上。以下是该函数的一个用例:从初值0开始, 这里foldLeft将函数依次应用到列表中的每一个元素和之前累积的值上。原创 2025-03-24 15:07:27 · 513 阅读 · 0 评论 -
10-scala嵌套方法
在Scala中可以嵌套定义方法。例如以下对象提供了一个。原创 2025-03-20 00:10:15 · 127 阅读 · 0 评论 -
9-scala高阶函数
高阶函数是指使用其他函数作为参数、或者返回一个函数作为结果的函数。在Scala中函数是“一等公民”,所以允许定义高阶函数。这里的术语可能有点让人困惑,我们约定,使用函数值作为参数,或者返回值为函数值的“函数”和“方法”,均称之为“高阶函数”。最常见的一个例子是Scala集合类(collections)的高阶函数函数有一个整型参数x,返回x * 2。一般来说,在=>左边的元组是函数的参数列表,而右边表达式的值则为函数的返回值。在第3行,函数被应用在列表salaries中的每一个元素。原创 2025-03-19 23:57:32 · 387 阅读 · 0 评论 -
8-scala通过混入(mixin)来组合类
类型参数的构造器,可用于对字符串进行迭代。一个类只能有一个父类但是可以有多个混入(分别使用关键字。接下来,我们将实现一个具体的类(所有的抽象成员。如果是单一继承,我们将不会达到这样的灵活性。当某个特质被用于组合类时,被称为混入。混入和某个父类可能有相同的父类。现在我们创建一个特质,也继承于。方法——只要还有元素可以迭代(),就会一直对下个元素(中的功能组合成一个类。该类中有一个抽象的类型。是个特质,可以不必实现。和标准的迭代器方法。原创 2025-03-19 23:41:08 · 176 阅读 · 0 评论 -
7-scala元组
在 Scala 中,元组是一个可以容纳不同类型元素的类。元组是不可变的。当我们需要从函数返回多个值时,元组会派上用场。这将创建一个包含一个 String 元素和一个 Int 元素的元组。Scala 中的元组包含一系列类:Tuple2,Tuple3等,直到 Tuple22。因此,当我们创建一个包含 n 个元素(n 位于 2 和 22 之间)的元组时,Scala 基本上就是从上述的一组类中实例化 一个相对应的类,使用组成元素的类型进行参数化。上例中,ingredient的类型为。原创 2025-03-19 23:32:56 · 389 阅读 · 0 评论 -
6-scala特质
特征作为泛型类型和抽象方法非常有用。扩展需要一个类型A和实现方法hasNext和next。原创 2025-01-25 14:03:15 · 303 阅读 · 0 评论 -
5-命名参数
注意使用命名参数时,顺序是可以重新排列的。但是,如果某些参数被命名了,而其他参数没有,则未命名的参数要按照其方法签名中的参数顺序放在前面。注意调用 Java 方法时不能使用命名参数。原创 2025-01-25 10:03:45 · 346 阅读 · 0 评论 -
4.scala默认参数值
在Java中,我们可以通过带有可选参数的重载方法达到同样的效果。不过,只要调用方忽略了一个参数,其他参数就必须要带名传入。Scala具备给参数提供默认值的能力,这样调用者就可以忽略这些具有默认值的参数。上面的参数level有默认值,所以是可选的。最后一行中传入的参数。原创 2025-01-25 09:56:03 · 744 阅读 · 0 评论 -
3-scala的类
一个最简的类的定义就是关键字class+标识符,类名首字母应大写。关键字new被用于创建类的实例。User由于没有定义任何构造器,因而只有一个不带任何参数的默认构造器。然而,你通常需要一个构造器和类体。x = x + dxy = y + dys"(xx = x + dxy)"Point类有4个成员:变量x和y,方法move和toString。与许多其他语言不同,主构造方法在类的签名中。move方法带有2个参数,返回无任何意义的Unit类型值()。这一点与Java这类语言中的void相当。另外,原创 2025-01-25 09:27:54 · 638 阅读 · 0 评论 -
2-scala的数据类型
在Scala中,所有的值都有类型,包括数值和函数。下图阐述了类型层次结构的一个子集。原创 2025-01-24 18:44:57 · 398 阅读 · 0 评论 -
1-scala基础
关于样例类,还有不少内容我们乐于介绍,并且我们确信你会爱上它们。你可以定义一个匿名函数(即没有名字),来返回一个给定整数加一的结果。还有一些其他的区别,但是现在你可以认为方法就是类似于函数的东西。方法的表现和行为和函数非常类似,但是它们之间有一些关键的差别。方法体的最后一个表达式就是方法的返回值。对象是它们自己定义的单实例,你可以把它看作它自己的类的单例。代码块中最后一个表达式的结果,也正是整个块的结果。的左边是参数列表,右边是一个包含参数的表达式。关键字定义一个类,后面跟着它的名字和构造参数。原创 2025-01-24 17:33:01 · 822 阅读 · 0 评论