• Scala 数据类型 & 类型转换 & 转换精度


    数据类型

    Scala官网:https://docs.scala-lang.org/zh-cn/tour/unified-types.html

    Any是所有类型的超类型,也称为顶级类 型。它定义了一些通用的方法如equalshashCodetoStringAny有两个直接子类:AnyValAnyRef

    AnyVal代表值类型。有9个预定义的非空的值类型分别是:DoubleFloatLongIntShortByteCharUnitBooleanUnit是不带任何意义的值类型,它仅有一个实例可以像这样声明:()。所有的函数必须有返回,所以说有时候Unit也是有用的返回类型。

    AnyRef代表引用类型。所有非值类型都被定义为引用类型。在Scala中,每个用户自定义的类型都是AnyRef的子类型。如果Scala被应用在Java的运行环境中,AnyRef相当于java.lang.Object

    Nothing是所有类型的子类型,也称为底部类型。没有一个值是Nothing类型的。它的用途之一是给出非正常终止的信号,如抛出异常、程序退出或者一个无限循环(可以理解为它是一个不对值进行定义的表达式的类型,或者是一个不能正常返回的方法)。

    Null是所有引用类型的子类型(即AnyRef的任意子类型)。它有一个单例值由关键字null所定义。Null主要是使得Scala满足和其他JVM语言的互操作性,但是几乎不应该在Scala代码中使用。我们将在后面的章节中介绍null的替代方案。

    类型转换

    精度转换

    float:

    float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;

    float 在储存大型浮点数组的时候可节省内存空间;

    默认值是 0.0f;

    浮点数不能用来表示精确的值,如货币;

    例子:float f1 = 234.5f。

    double:

    double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;

    浮点数的默认类型为double类型;

    double类型同样不能表示精确的值,如货币;

    默认值是 0.0d;

    例子:double d1 = 123.4。

  • 相关阅读:
    20170803 Airflow自带的API进行GET 和POST动作部分内容
    20170731 培训Bootstrap
    20170728 Celery项目 后台处理SQL SERVER的一个异常
    python 之 递归
    编译型语言和解释型语言的区别
    如何在命令行中让python2和python3同存
    bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级——分层图+dijkstra
    单调栈题目总结
    汕头市队赛SRM15
    codevs 1269 匈牙利游戏——次短路(spfa)
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/14447935.html
Copyright © 2020-2023  润新知