zoukankan      html  css  js  c++  java
  • Scala学习-01-变量与类型

    Scala运行在jvm之上,可以调用Java类库和与Java框架交互,并将面向对象与面向函数结合在一起。

    特点:

      1 保留了静态类型检查。安全保障高。

      2 函数式编程,更加灵活。

      3 运行于jvm之上,可以直接编译成Java字节码,可以使用现成的大量Java类库。

    Scala程序可以向其他解释型语言一样通过REPL开发,但是Scalal程序会被快速编译成字节码,然后将字节码交给Jvm执行。

    REPL — 交互式解释器环境。
    R(read)、E(evaluate)、P(print)、L(loop) 
    输入值,交互式解释器会读取输入内容并对它求值,再返回结果,并重复此过程。

    Scala变量声明:

    scala> var res=6*3
    res: Int = 18
    
    scala> var str="HelloWorld"
    str: String = HelloWorld

    用val定义常量

    Scala中推荐使用val,除非真的要改变这个值的时候。

    scala> var res=6*3
    res: Int = 18
    
    scala> var str="HelloWorld"
    str: String = HelloWorld

    注意:必须赋初值。因为编译器要根据初值给变量定义类型。

    scala> var res=56
    res: Int = 56

    scala> res="test"
    <console>:12: error: type mismatch;
     found   : String("test")
     required: Int
           res="test"

    自定义类型

    scala> var res : String = "HelloWorld"
    res: String = HelloWorld
    
    scala> res+"Scala"
    res11: String = HelloWorldScala

    格式和java有一定的区别。

    Java: String res

    Scala:  res : String

    分号分隔

    在Java中每一行都要用“;”分隔,Scala中只有在一行代码多条语句的情况下使用“;”

    可以将多个变量放一起声明

    val xmax, ymax = 100 // 将xmax֗和max设为100
    var greeting, message: String = null
    // greeting֗message都是字符串,被初始化为null

    Scala常用类型

    scala> 1.toString()
    res12: String = 1
    
    scala> 1.to(10)
    res13: scala.collection.immutable.Range.Inclusive = Range 1 to 10

    Scala中的int double……都是类,并且Scala并不刻意区分基本类型和引用类型

    在Scala中,包装类型的转换由Scala编译器完成,并不需要程序员考虑。

    Scala中的类型转换

    Scala通过方法做类型转换。

    scala> 99.7.toInt
    res14: Int = 99
    
    scala> "99.7".toDouble
    res15: Double = 99.7
  • 相关阅读:
    Editor REST Client
    log配置
    spring-boot-configuration-processor
    http请求
    做项目用到的一些正则表达式,贴出来共享
    批量插入的实现
    sql执行顺序对比
    Java常用的并发工具类:CountDownLatch、CyclicBarrier、Semaphore、Exchanger
    spring中bean的生命周期
    多属性的对象列表的两种排序方法
  • 原文地址:https://www.cnblogs.com/holos/p/6604051.html
Copyright © 2011-2022 走看看