scala编程(五)——基本类型和操作

文本

文本是直接在代码里写常量值的一种方式以。在Scala中并不显式的使用Int或float,而是以文本的方式写成 val 变量。

如果整数文本结束于 L 或者 l,就是 Long 类型,否则就是 Int 类型。

如果浮点数文本以F或f结束,就是Float类型的,否则就是Double类型的。 可选的,Double浮点数文本也可以D或d结尾。

字符文本可以是在单引号之间的任何 Unicode 字符

 def main(args: Array[String]): Unit = {
    val l = 1l;
    val f = 1.5f;
    val d =1.5d;
  }

Scala 为原始字串:raw String 引入了一种特殊的语法。以同一行里的三个引号(""")开始和结束一条原始字串。内部的原始字串可以包含无论何种任意字符,包括新行,引号和特殊字符,当然同一行的三个引号除外。

val s =
      """hello,my name
        |is "alice",nice to meet you""".stripMargin;
    println(s)

运行结果如下:

hello,my name
is "alice",nice to meet you

操作符和方法

Scala 为它的基本类型提供了丰富的操作符集。如前几章里描述的,这些操作符实际只是 作用在普通方法调用上华丽的语法。例如,1 + 2 与(1).+(2)其实是一回事。换句话说, 就是 Int 类包含了叫做+的方法,它带一个 Int 参数并返回一个 Int 结果。这个+方法在两 个 Int 相加时被调用。

任何方法都可以是操作符。Scala里的操作符不是特殊的语言语法:任何方法都可以是操作符。使用方法的方式使它成为操作符。如果写成 s.indexOf(‘o‘),indexOf 就不是操作符。不过如果写成,s indexOf ‘o‘,那么 indexOf 就是操作符了,因为你以操作符标注方式使用它。

Scala 里,你可以舍弃方法调用 的空括号。例外就是如果方法带有副作用就加上括号,如 println(),不过如果方法没有 副作用就可以去掉括号,如 String 上调用的 toLowerCase。

println(s.toLowerCase)

对象相等性

可以利用==操作符,比较不同类型的两个对象,甚至可以比较 null,或任何可能是 null 的东西。不会有任何异常被抛出。

 def main(args: Array[String]): Unit = {
    val list = List("abc","def");
    val array = List("abc","def");
    println(list == array)
    println(list == null)
  }

==已经被仔细地加工过,因此在许多情况下你都可以得到你想要的相等性的比较。这只是用了一个非常简单的规则:首先检查左侧是否为null,如果不是,调用equals 方法。由于equals是一个方法,因此比较的精度取决于左手边的参数。又由于已经有一个 自动的null检查,因此你不需要手动再检查一次了。这种类型的比较对于不同的对象也会产生 true,只要他们的内容是相同的并且它们的 equals 方法是基于内容编写的。

Scala 的==与 Java 的有何差别? Java 里的既可以比较原始类型也可以比较参考类型。对于原始类型,Java 的==比较 值的相等性,如 Scala。然而对于参考类型,Java 的==比较了参考相等性:reference equality,也就是说这两个变量是否都指向于 JVM 堆里的同一个对象。Scala 也提供了这 种机制,名字是 eq。不过,eq 和它的反义词,ne,仅仅应用于可以直接映射到 Java 的对 象。

富包装器

你可以在 Scala 基本类型上调用的方法远多于前几段里面讲到过的。表格 5.4 里罗列了几 个例子。这些方法的使用要通过隐式转换:implicit conversion,一种将在第二十一章描 述其细节的技术。现在所有要知道的就是本章介绍过的每个基本类型,都有一个“富包装 器”可以提供许多额外的方法。因此,想要看到基本类型的所有可用方法,你还应该查看 一下每个基本类型的富包装器的 API 文档。这些类可参见表格 :

示例代码如下:

示例代码如下顶顶顶顶顶

示例代码如下:

  def main(args: Array[String]): Unit = {
    println(0 max 5 );
    println(0.min(5))
    print(-2.7 abs )
    println(-2.7 round)
    println(1.5 isInfinity)
    println((1.0 / 0) isInfinity)
    println(4 to 6)
    println("Bob" .capitalize)
    println("robert" drop 2)
  }

运行结果如下:

5
0
2.7-3
false
true
Range(4, 5, 6)
Bob
bert

原文地址:https://www.cnblogs.com/chxyshaodiao/p/12333185.html

时间: 2024-10-10 15:32:16

scala编程(五)——基本类型和操作的相关文章

scala 基本类型和操作

基本类型和操作========================类型说明,与java一致值类型 范围 Byte 8位有符号补码整数(-27-27-1) Short 16位有符号补码整数(-215-215-1) Int 32位有符号补码整数(-231-231-1) Long 64位有符号补码整数(-263-263-1) Char 16位无符号Unicode字符(0-216-1) String 字符序列 Float 32位IEEE754单精度浮点数 Double 64位IEEE754单精度浮点数 Bo

Scala编程--基本类型和操作

如果你熟悉Java,你会很开心地发现Java基本类型和操作符在Scala里有同样的意思.然而即使你是一位资深Java开发者,这里也仍然有一些有趣的差别使得本章值得一读.因为本章提到的一些Scala的方面实质上与Java相同,我们插入了一些注释,Java开发者可以安全跳过,以加快你的进程.本章里,你会获得Scala基本类型的概观,包括String和值类型Int,Long,Short,Byte,Float,Double,Char还有Boolean.你会学到可以在这些类型上执行的操作,包括Scala表

(升级版)Spark从入门到精通(Scala编程、案例实战、高级特性、Spark内核源码剖析、Hadoop高端)

本课程主要讲解目前大数据领域最热门.最火爆.最有前景的技术——Spark.在本课程中,会从浅入深,基于大量案例实战,深度剖析和讲解Spark,并且会包含完全从企业真实复杂业务需求中抽取出的案例实战.课程会涵盖Scala编程详解.Spark核心编程.Spark SQL和Spark Streaming.Spark内核以及源码剖析.性能调优.企业级案例实战等部分.完全从零起步,让学员可以一站式精通Spark企业级大数据开发,提升自己的职场竞争力,实现更好的升职或者跳槽,或者从j2ee等传统软件开发工程

变量——基本类型和引用类型的值

基本类型和引用类型的值 一.综述 ECMAScript变量可能包含两种不同的数据类型的值:基本类型值和引用类型值. 基本类型值是指简单的数据段,而引用类型值指那些可能由多个值构成的对象. 在给一个变量赋值时,解析器必须确定这个值是基本类型值还是引用类型值. 5种基本数据类型(Undefined.Null.Boolean.Number.String)是按值访问的,因此可以操作保存在变量中实际的值. 引用类型的值是保存在内存中的对象.与其他语言不同,JavaScript不允许直接访问内存中的位置也就

[转]javascript中基本类型和引用类型的区别分析

基本类型和引用类型 ECMAScript包含两个不同类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段:引用类型值指由多个值构成的对象.当我们把变量赋值给一个变量时,解析器首先要做的就是确认这个值是基本类型值还是引用类型值. 常见的五种基本数据类型是: Undifined.Null.Boolean.Number和String.这五种基本数据类型可以直接操作保存在变量中的实际值. 看下面例子: ? 1 2 3 4 5 6 7 8 9 var a = 10; var b = a;    

【基本类型和引用类型】的区别

基本类型和引用类型 ECMAScript包含两个不同类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段:引用类型值指由多个值构成的对象.当我们把变量赋值给一个变量时,解析器首先要做的就是确认这个值是基本类型值还是引用类型值. 常见的五种基本数据类型是: Undifined.Null.Boolean.Number和String.这五种基本数据类型可以直接操作保存在变量中的实际值. 看下面例子: var a = 10; var b = a; b = 20; console.log(a);

javascript中基本类型和引用类型的区别分析

大多数人系统学习过的程序设计语言,在这些语言的学习过程中最早学到的几个要点之一就是值类型和引用类型的区别.下面我们来看一下在 JavaScript 中基本数据类型(Primitive Types)和引用类型(Reference Types)的区别.. 基本类型和引用类型 ECMAScript包含两个不同类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段:引用类型值指由多个值构成的对象.当我们把变量赋值给一个变量时,解析器首先要做的就是确认这个值是基本类型值还是引用类型值. 常见的五种

基本类型和引用类型的值

一:什么是基本类型和引用类型值 1. 基本类型值指的是简单的数据段 2. 引用类型指那些可能有多个值组成的对象 3. 在赋值变量时,解析器必须确定这个是基本类型值还是引用类型值 4. 有5种基本数据类型:Underfined,Null,Boolean,Unmber和String.这5种可以直接操作保存在变量种的实际值. 5. 引用类型的值保存在内存的对象中,javascript不允许直接访问内存中的位置.操作对象时,实际操作的是对象的引用而不是实际对象.因此,引用类型的值是引用访问的. 二:动态

Spark学习之scala编程

一.Scala语言基础 1.Scala语言简介 Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性.Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序. 学习Scala编程语言,为后续学习Spark奠定基础. 2.为什么要学Scala l 优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验. l 速度快:Scala语言表达能力强,一行代码抵得上Java多行,开发速度快:Scala是静态编译