首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Scala篇】--Scala中的函数

一、前述 Scala中的函数还是比较重要的,所以本文章把Scala中可能用到的函数列举如下,并做详细说明。 二、具体函数 1、Scala函数的定义 ?...,要指定传入参数的类型 方法可以写返回值的类型也可以不写,会自动推断,有时候不能省略,必须写,比如在递归函数中或者函数的返回值是函数类型的时候。  ...scala中函数有返回值时,可以写return,也可以不写return,会把函数中最后一行当做结果返回。当写return时,必须要写函数的返回值。...如果返回值可以一行搞定,可以将{}省略不写 传递给方法的参数可以在方法中使用,并且scala规定方法的传过来的参数为val的,不是var的。...可以将匿名函数返回给val定义的值 匿名函数不能显式声明函数的返回类型 /** * 匿名函数 * 1.有参数匿名函数 * 2.无参数匿名函数 * 3.有返回值的匿名函数

1.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    scala数据类型

    从上图可以得到以下结论: 在 scala 中有一个根类型 Any ,他是所有类的父类. scala中一切皆为对象,分为两大类AnyVal(值类型),AnyRef(引用类型),他们都是Any子类....Nothing类型也是bottomclass,他是所有类的子类,在开发中通常可以将Nothing类型的值返回 给任意变量或者函数, 这里抛出异常使用很多. scala数据类型介绍 Scala 与 Java...有着相同的数据类型,在Scala中数据类型都是对象,也就是说scala没有java中的原生类型 Scala数据类型分为两大类 AnyVal(值类型) 和 AnyRef(引用类型), 注意:不管是AnyVal...相对于java的类型系统,scala要复杂些!也正是这复杂多变的类型系统才让面向对象编程和函数式编程完美的融合在了一起 scala数据类型列表 数据类型 描述 Byte 8位有符号补码整数。...Java中的null引用。

    39810

    scala快速入门系列【数据类型与操作符】

    scala中的类型以及操作符绝大多数和java一样,通过本篇博客,我们将学习: 与Java不一样的一些用法 scala类型的继承体系 ---- 数据类型 基础类型 类型说明 Byte 8位带符号整数 Short...NOTE] scala中没有,++、–运算符 与Java不一样,在scala中,可以直接使用==、!=进行比较,它们与equals方法表示一致。...类型 说明 Any 所有类型的父类,,它有两个子类AnyRef与AnyVal AnyVal 所有数值类型的父类 AnyRef 所有对象类型(引用类型)的父类 Unit 表示空,Unit是AnyVal的子类...,它只有一个的实例() 它类似于Java中的void,但scala要比Java更加面向对象 Null Null是AnyRef的子类,也就是说它是所有引用类型的子类。...它的实例是null 可以将null赋值给任何对象类型 Nothing 所有类型的子类 不能直接创建该类型实例,某个方法抛出异常时,返回的就是Nothing类型,因为 Nothing是所有类的子类,那么它可以赋值为任何类型

    33220

    Scala 高阶(九):Scala中的模式匹配

    常量 类型 数组 列表 元组 对象及样例类 四、声明变量中的模式匹配 五、for表达式模式匹配 六、偏函数模式匹配 ---- 本次主要分享Scala中关于模式匹配的内容,Scala中的模式匹配类似于Java...中的switch语法,但是Scala在基于Java的思想上补充了特有的功能。...:运算符匹配first :: second :: rest,将一个列表拆成三份,第一个第二个元素和剩余元素构成的列表。...,unapply 方法将 student 对象的 name 和 age 属性提取出来,与 Student("alice", 15)) 中的属性值进行匹配 case 中对象的 unapply 方法(提取器...]): Unit = { val map = Map("A" -> 1, "B" -> 0, "C" -> 3) // //直接将 map 中的 k-v 遍历出来 for ((k, v

    1.5K30

    Scala 高阶(十):Scala中的异常处理

    Java中异常处理有两种方式 try...catch和finally概述 finally重要面试题 三、Scala中的异常机制 ---- Scala中的异常机制语法处理上和 Java 类似,但是又不尽相同...如果发生任何异常,catch处理程序将处理它,程序将不会异常终止。...Scala 的异常的工作机制和 Java 一样,但是 Scala 没有“checked(编译期)”异常,即 Scala没有编译异常这个概念,异常都是在运行的时候捕获处理。...因此,在 catch 子句中,越具体的异常越要靠前,越普遍的异常越靠后,如果把越普遍的异常写在前,把具体的异常写在后,在 Scala 中也不会报错,但这样是非常不好的编程风格。...它向调用者函数提供了此方法可能引发此异常的信息。它有助于调用函数处理并将该代码包含在 try-catch块中,以避免程序异常终止。在 Scala 中,可以使用 throws 注解来声明异常。

    1.1K40

    Scala中的Collection

    b = 0::a //定义方法二:连接操作符 b: List[Int] = List(0, 1, 2, 3, 4) //将左边的元素添加到右边List的头部 scala...,表明一个转换过程,参数中的匿名函数参数x是List中得每个元素 //使用map实现全部字母大写 scala> c.map(x => x.toUpperCase) res23: List[String]...filter和map来实现对List中过滤后元素的具体操作 //下面是将奇数全部加10 scala> a.filter( _ % 2 ==1).map( _ + 10) res26: List[Int...List“打平”,将返回元素全部放在同一层 //下面就可以取出嵌套List中的偶数,注意,去除了‘外壳’ scala> complex.flatMap( _.filter( _%2 ==0)) res30...scala> s.tail.head res50: Int = 2 Scala中的tuple:元组 //元组的概念,和Python中的元组类似,可以放不用类型的变量 scala> (1,2) res51

    1.2K70

    2021年大数据常用语言Scala(六):基础语法学习 数据类型与操作符

    数据类型与操作符 scala中的类型以及操作符绝大多数和Java一样,我们主要来学习 与Java不一样的一些用法 scala类型的继承体系 数据类型 基础类型 类型说明 Byte 8位带符号整数 Short...位运算符 &、||、^、> Scala 中的运算符, 基本上和Java一样, 除了: scala中没有,++、--运算符 与Java不一样,在scala中,可以直接使用==、!..., 也就是我们Scala是一种单根继承体系 类型 说明 Any 所有类型的父类,,它有两个子类AnyRef与AnyVal AnyVal 所有数值类型的父类 AnyRef 所有对象类型(引用类型)的父类...(String 本质就是Char数组, 也是引用类型哦) Unit 表示空,Unit是AnyVal的子类,它只有一个的实例{% em %}() {% endem %}它类似于Java中的void...它的实例是{% em %}null{% endem %}可以将null赋值给任何引用对象类型 Nothing 所有类型的子类不能直接创建该类型实例,某个方法抛出异常时,返回的就是

    30710

    Scala中的偏函数

    艺术地说,Scala中的Partial Function就是一个“残缺”的函数,就像一个严重偏科的学生,只对某些科目感兴趣,而对没有兴趣的内容弃若蔽履。...在Scala中,所有偏函数的类型皆被定义为PartialFunction[-A, +B]类型,PartialFunction[-A, +B]又派生自Function1。...偏函数则更进一步,将函数求解空间中各个分支也分离出来,形成可以被组合的偏函数。 偏函数中最常见的组合方法为orElse、andThen与compose。...例如编写一个函数,要求将字符串中的数字替换为对应的英文单词,则可以实现为: val p1:PartialFunction[String, String] = { case s if s.contains...is even" case x if x % 2 == 1 => x + " is odd" } 在Twitter的Effetive Scala中,给出了一个使用map的编码风格建议: //avoid

    2.6K40

    Scala中的闭包

    在Scala中,函数引入传入的参数是再正常不过的事情了,比如(x: Int) => x > 0中,唯一在函数体x > 0中用到的变量是x,即这个函数的唯一参数。...除此之外,Scala还支持引用其他地方定义的变量:(x: Int) => x + more,这个函数将more也作为入参,不过这个参数是哪里来的?...如果单独使用这个函数字面量,而没有在任何处于作用域内的地方定义more,编译器将报错: scala> (x: Int) => x + more :12: error: not found...在Scala中,答案是闭包能够看到这个改变,参考下面的例子: scala> more = 9999 more: Int = 9999 scala> addMore(10) res1: Int = 10009...当你将这些闭包应用到入参时,其返回结果取决于闭包创建时more的定义 scala> inc1(10) res4: Int = 11 scala> inc9999(10) res5: Int = 10009

    87310

    必知|Scala类型层次结构

    这个是有人在群里问浪尖的一个问题,今天浪尖就给大家讲解一下Scala类型层次结构 在Scala中,所有的值都有类型,包括数值和函数。下图阐述了类型层次结构的一个子集。 ? 1....Scala类型层次结构 Any是所有类型的超类型,也称为顶级类 型。它定义了一些通用的方法如equals、hashCode和toString。Any有两个直接子类:AnyVal和AnyRef。...AnyVal代表值类型。有9个预定义的非空的值类型分别是:Double、Float、Long、Int、Short、Byte、Char、Unit和Boolean。...在Scala中,每个用户自定义的类型都是AnyRef的子类型。如果Scala被应用在Java的运行环境中,AnyRef相当于java.lang.Object。...这个列表里由多种类型进行初始化,但是它们都是scala.Any的实例,所以可以把它们加入到列表中。 下面是程序的输出: a string732ctrue 2.

    1.2K10

    Scala:统一的对象模型

    类 图片展示了Scala的类层次结构。每一个类都继承自scala.Any,Any的子类可以划分为两个主要的范畴:值类型,继承自scala.AnyVal;引用类型,继承scala.AnyRef。...每一种Java的基本数据类型对应于值类型,通过预定义的类型别名进行映射,而AnyRef则对应于Java环境中的根类:java.lang.Object。...需要注意的是值类型类空间是平行的,即所有的值类型都继承自scala.AnyVal,但是值类型之间不存在任何关系,比如继承关系。作为替代,值类型之间有视图(隐式类型转换)。...Nothing是所有其它类型的子类,这个类没有任何实例,但是它可以作为类型参数体现价值,比如Nil就是List[Nothing]的实例,而Scala中List是协变的,从而对于所有的类型T,Nil 都是...Student) //程序没有问题,可以说明List是协变的 关于==,equals,eq:在Scala中,==相当于是equals的别名,用于比较值是否相等,而eq 用于比较引用是否相等: val

    67650
    领券