一、Scala的数据类型 (1)、scala中一切数据都是对象,都是Any的子类; (2)、scala中数据类型分为两大类:数值类型(AnyVal,即any value,任意值)、引用类型(AnyRef,即any reference,任意引用); (3)、scala数据类型仍然遵守低精度的值类型向高精度的值类型,自动转换(隐式转换);char类型自动转换为Int类型; (4)、...
scala中数组的概念是和Java类似,可以用数组来存放一组数据。scala中,有两种数组,一种是定长数组,另一种是变长数组。 0.1 定长数组 定长数组指的是数组的长度是不允许改变的。通过指定长度定义数组,语法格式如下: val/var 变量名 = new Array[元素类型](数组长度) //方式1: 通过指...
Scala中的Option与Java 8引入的java.util.Optional语义相同,表示“一个实例有可能不为空,也有可能为空”,是OOP大一统思想下的产物,旨在通过让用户提前判空来避免讨厌的NullPointerException,降低直接返回null的风险。在Scala类Option[+A]的伴生对象中,apply()方法的定义如下。 /** An Option factory which creates S...
Map中的元素呈现key -> value的形式,其中第一个参数是映射的键,第二个参数是映射的值。且Map中每一个元素的键是唯一的。 e.g. 代码语言:javascript 复制 scala>val m=Map(1->1,1->3,2->3,3->4,4->4,5->7)m:scala.collection.immutable.Map[Int,Int]=Map(5->7,1->3,2->3,3->4,4->...
Scala是一门多范式的编程语言,一种类似java的编程语言,是可扩展语言,并集成面向对象编程和函数式编程的各种特性的混合功能编程语言。 Scala被编译后在Java虚拟机上运行。 1、 scala中声明变量 val/var变量名称:变量类型=初始值 val定义的是不可重新赋值的变量(值不可修改),var定义的是可重新赋值的变量(值可以修改...
【Scala篇】--Scala中的函数 一、前述 Scala中的函数还是比较重要的,所以本文章把Scala中可能用到的函数列举如下,并做详细说明。 二、具体函数 1、Scala函数的定义 def fun (a: Int , b: Int ) : Unit = { println(a+b) } fun(1,1) def fun1 (a : Int , b : Int)= a+b...
Scala中的集合类型 Scala提供了一套很好的集合实现,提供了一些集合类型的抽象。Scala集合分为不可变(immutable)的集合和可变(mutable)的集合。 scala的集合类型(collection)涵盖了如下类型: 数组(Array)、链表(List)、Set、Map、Tuple。 1、数组Array 对于数组的使用,若想调用数组提供的方法,我们需要使用 import Array...
在偏函数中只能使用 case 语句,整个函数必须用大括号包围。这与普通的函数字面量不同,普通的函数字面量可以使用大括号,也可以用小括号; 被包裹在大括号中的一组case语句是一个偏函数,是一个并非对所有输入值都有定义的函数; Scala中的Partial Function是一个trait,其类型为PartialFunction[A,B],表示:接收一个...
5)Scala源码中存在的大部分隐式转换都是存在于Predef之中,比如:String->StringOps,Array->ArrayOps等,而Scala.Predef 自动引入到当前作用域。 6.3 隐式对象 1.格式 implicit object 对象名{//类主体} 2.例子 object ImplicitTest extends App{//定义一个乘法接口 trait Multiplicable[T]{def multiply(x: T):...
函数是Scala中的一等公民。 实际上,称函数是一等公民,其实是相对于方法而言,即函数可以像任何其他对象那样赋值给一个变量,以参数或者返回值的身份作为方法的一部分,换句话说函数在Scala中具有和其他对象同等使用权限,而这是方法所不具备的。 与方法使用def作为关键字来声明不同,Scala中声明函数的关键字其实是“=>...