scala
文章平均质量分 72
scala技术汇总 实战案例
IT老王Hua_TZ
老王讲IT 性感有魅力
展开
-
Scala 文件 I/O
Scala 进行文件写操作,直接用的都是 java中 的 I/O 类 (原创 2024-05-20 20:56:59 · 122 阅读 · 0 评论 -
Scala 模式匹配
Scala 提供了强大的模式匹配机制,应用也非常广泛。一个模式匹配包含了一系列备选项,每个都开始于关键字。每个备选项都包含了一个模式及一到多个表达式。箭头符号隔开了模式和表达式。原创 2024-05-20 20:55:15 · 336 阅读 · 0 评论 -
Scala Iterator(迭代器)
Scala Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法。迭代器 it 的两个基本操作是和。调用会返回迭代器的下一个元素,并且更新迭代器的状态。调用用于检测集合中是否还有元素。原创 2024-05-20 20:53:57 · 772 阅读 · 0 评论 -
Scala Map(映射)
Map(映射)是一种可迭代的键值对(key/value)结构。所有的值都可以通过键来获取。Map 中的键都是唯一的。Map 也叫哈希表(Hash tables)。Map 有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。默认情况下 Scala 使用不可变 Map。如果你需要使用可变集合,你需要显式的引入类在 Scala 中 你可以同时使用可变与不可变 Map,不可变的直接使用 Map,可变的使用 mutable.Map。定义 Map 时,需要为键值对定义类型。原创 2024-05-10 21:11:06 · 644 阅读 · 0 评论 -
Scala List(列表)
Scala 列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变,其次列表 具有递归的结构(也就是链接表结构)而数组不是。。列表的元素类型 T 可以写成 List[T]。原创 2024-05-09 23:06:37 · 510 阅读 · 0 评论 -
Scala特殊符号含义
用于字符串拼接, +=为可变数组添加元素,可以用来加数值也可以用来拼接字符串,取决于等式左边是什么类型,但是++=只能拼接字符串。::是右侧对象的方法,即它是对象b的方法,而::左侧的运算数是::方法的参数,所以1::b的含义是b.::(1)syntactic sugar 语法糖:把需要的参数、类型、函数最简化,由编译器来解析(去糖化)//如果不需要所有部件,则在不需要的部件使用_;用于连接两个Seq,eg:列表、集合、字符串、Map etc。b 有两个参数,调用是必须有两个 Int 类型的参数。原创 2024-05-09 22:17:55 · 603 阅读 · 0 评论 -
Scala 类和对象
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。原创 2024-05-08 23:03:01 · 1095 阅读 · 0 评论 -
Scala- 数组
Scala 语言中提供的数组是用来存储固定大小的同类型元素数组对于每一门编程语言来说都是重要的数据结构之一。声明数组变量并不是声明 number0、number1、...、number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来表示一个个单独的变量。数组中某个指定的元素是通过索引来访问的。数组的第一个元素索引为0,最后一个元素的索引为元素总数减1。原创 2024-04-24 22:56:05 · 935 阅读 · 0 评论 -
Scala-字符串
以上实例定义了变量 greeting,为字符串常量,它的类型为 String (java.lang.String)。在 Scala 中,字符串的类型实际上是 Java String,它本身没有 String 类。在 Scala 中,String 是一个不可变的对象,所以该对象不可被修改。这就意味着你如果修改字符串就会产生一个新的字符串对象。但其他对象,如数组就是可变的对象。接下来我们会为大家介绍常用的 java.lang.String 方法。原创 2024-04-24 22:24:36 · 1032 阅读 · 0 评论 -
实现尾递归优化
当loop(1, 120)返回120时,就是最终的结果,不需要再从栈顶到栈底依次计算结果。这样做的优点是,无论n多大,都只会产生一个调用栈,节省了内存空间,也避免了栈溢出。,每次调用自身都会保存当前的参数和返回位置,等待下一次调用返回结果。为什么要进行尾递归优化,是因为尾递归可以减少调用栈的占用,从而避免栈溢出的风险,提高性能和内存利用率。当factorial(1)返回1时,才开始从栈顶到栈底依次计算结果,最后返回120。,每次调用自身都不会保存当前的参数和返回位置。这个函数在计算阶乘的过程中,原创 2024-04-18 21:51:17 · 595 阅读 · 0 评论 -
Scala - 函数柯里化(Currying)
柯里化(Currying)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数。原创 2024-04-11 01:14:40 · 476 阅读 · 0 评论 -
Scala - 高阶函数
Scala 中允许使用高阶函数, 高阶函数可以使用其他函数作为参数,或者使用函数作为输出结果。高阶函数(Higher-Order Function)就是操作其他函数的函数。原创 2024-04-11 01:11:00 · 501 阅读 · 0 评论 -
Scala - 偏应用函数
我们可以使用偏应用函数优化以上方法,绑定第一个 date 参数,第二个参数使用下划线(_)替换缺失的参数列表,并把这个新的函数值的索引的赋给变量。实例中,log() 方法接收两个参数:date 和 message。我们在程序执行时调用了三次,参数 date 值都相同,message 不同。Scala 偏应用函数是一种表达式,你不需要提供函数需要的所有参数,只需要提供部分,或不提供所需参数。原创 2024-04-11 01:09:44 · 232 阅读 · 0 评论 -
Scala-内嵌函数
我们可以在 Scala 函数内定义函数,定义在函数内的函数称之为局部函数。原创 2024-04-11 01:07:13 · 226 阅读 · 0 评论 -
Scala-匿名函数
Scala 中定义匿名函数的语法很简单,箭头左边是参数列表,右边是函数体。使用匿名函数后,我们的代码变得更简洁了。原创 2024-04-11 01:05:35 · 289 阅读 · 0 评论 -
Scala函数参数
Scala 可以为函数参数指定默认参数值,使用了默认参数,你在调用函数的过程中可以不需要传递参数,这时函数就会调用它的默认参数值,如果传递了参数,则传递值会取代默认值。Scala 允许你指明函数的最后一个参数可以是重复的,即我们不需要指定函数参数的个数,可以向函数传入可变长度参数列表。在进入函数内部前,传值调用方式就已经将参数表达式的值计算完毕,而传名调用是在函数内部进行参数表达式的值计算的。传值调用(call-by-value):先计算参数表达式的值,再应用到函数内部;[老王讲IT 性感有魅力]原创 2024-04-11 01:01:41 · 516 阅读 · 0 评论 -
Scala IF...ELSE 语句
Scala IF...ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。原创 2024-03-27 15:23:03 · 1306 阅读 · 2 评论 -
IT老王:Scala 运算符
一个运算符是一个符号,用于告诉编译器来执行指定的数学运算和逻辑运算。Scala 含有丰富的内置运算符,包括以下几种类型:算术运算符关系运算符逻辑运算符位运算符赋值运算符接下来我们将为大家详细介绍以上各种运算符的应用。原创 2024-03-20 22:37:39 · 1298 阅读 · 0 评论 -
Scala_伴生对象
scala 允许定义 和class结构同名的 object结构object称之为 伴生对象class 称之为 伴生类当只有 object对象时,我们也称这个对象为 单例对象、孤立对象伴生对象 和 伴生类(如果定义了) 必须在一个scala源文件中。原创 2024-03-20 21:45:27 · 496 阅读 · 0 评论 -
IT老王 : Scala变量
为什么需要变量?一个程序就是一个世界,在scala中一切都是对象变量是一种使用方便的占位符,用于引用计算机内存地址,变量创建后会占用一定的内存空间。基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字母。原创 2024-03-14 01:19:00 · 1276 阅读 · 0 评论 -
IT老王:方法和函数
方法定义由一个 def 关键字开始,紧接着是可选的参数列表,一个冒号 : 和方法的返回类型,一个等于号 = ,最后是方法的主体。def functionName ([参数列表]) : [return type] = {以上代码中 return type 可以是任意合法的 Scala 数据类型。参数列表中的参数可以使用逗号分隔。原创 2024-02-22 17:31:46 · 945 阅读 · 0 评论 -
IT老王:Scala循环
当在循环中使用 break 语句,在执行到该语句时,就会中断循环并执行循环体之后的代码块。注意大括号中用于保存变量和条件,retVal 是变量, 循环中的 yield 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。不像 while 循环在循环头部测试循环条件, Scala 语言中,do...while 循环是在循环的尾部检查它的条件。以上语法中, List 变量是一个集合,for 循环会迭代所有集合的元素。原创 2024-02-22 15:38:52 · 857 阅读 · 0 评论 -
IT老王:Scala基础语法
然而以"$"开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用"$"开始的标识符,以免造成冲突。注意:默认情况下,Scala 总会引入 java.lang._ 、 scala._ 和 Predef._,这里也能解释,为什么以scala开头的包,在使用时都是省去scala.的。Scala.Null和scala.Nothing是用统一的方式处理Scala面向对象类型系统的某些"边界情况"的特殊类型。Null类是null引用对象的类型,它是每个引用类(继承自AnyRef的类)的子类。原创 2024-02-22 12:35:32 · 1081 阅读 · 0 评论 -
IT老王:Scala讲义
Scala将面向对象和函数式编程结合在一个简洁的高级语言中。Scala的静态类型有助于避免复杂应用程序中的错误,其JVM和JavaScript运行时可让您构建高性能系统,轻松访问庞大的库生态系统。原创 2024-02-22 10:32:29 · 1174 阅读 · 0 评论