Scala基础入门(六)初窥门径之Scala关键字、表达式

综合技术 2017-08-12

Scala 关键字

Scala 关键字列表:

abstract    case        catch       class       def
do          else        extends     false       final
finally     for         forSome     if          implicit
import      lazy        macro       match       new
null        object      override    package     private
protected   return      sealed      super       this
throw       trait       try         true        type
val         var         while       with        yield
_    :    =    =>    <-    <:    :    #    @

在 Scala 中,
$

是标识符, 不应该在编码时使用
$

作为变量名的使用。

Scala 表达式

Scala 中, 一切皆可视为表达式,

var a = 1; b = 2

Scala 中还可以使用 多行表达式
,使用花括号 {}
包含。 多行表达式的最后一行语句执行的结果即为 整个多行表达式的结果:

var diff_salary = {

var salary_PHP = 15000;

var salary_SCALA = 25000;

salary_SCALA - salary_PHP;

}

// diff_salary = 10000

println(“diff_salary = ” + diff_salary);

完整的 Scala 表达式示例程序:

package com.byron4j.scala.arr

/**
 * Scala表达式
 */
object ExpressionDemo {

  def main(args: Array[String]): Unit = {

    var a: Int = 1;
    var b: Int = 2;

    /**表达式:求和赋值给c*/
    var c = a + b;


    /**
     * 多行表达式;  最后的表达式即为多行表达式的结果;  无意抹黑PHPers...
     */
    var diff_salary = {
      var salary_PHP = 15000;
      var salary_SCALA = 25000;
      salary_SCALA - salary_PHP;
    }

    println("diff_salary = " + diff_salary);



    // 空类型:   var e: Unit
    var e = { var x = 0 } 


    //类型推断:   var f: Unit
    var f = {}
    println("f = " + f)


    /**
     * 条件表达式(布尔表达式、真假表达式)
     */
    if(1 > 0) println("1 > 0 is a truth.")


    if(!(1 < 0)) println("!(1 < 0) is a truth.")


    /**
     * Int / Int
     */
    println("5 / 2 = " + 5 / 2)


  }
}

执行结果为:

diff_salary = 10000

f = ()

1 > 0 is a truth.

!(1 < 0) is a truth.

5 / 2 = 2

CSDN博客

责编内容by:CSDN博客 (源链)。感谢您的支持!

您可能感兴趣的

How do I set the partitioning of DataFrame&que... I've started using Spark SQL and DataFrames in Spark 1.4.0. I'm wanting to define a custom partitioner on DataFrames, in Scala, but not seeing how to ...
闭包捕获与lazy val字段 几天前有同事聊起这个话题:大家在review一段Scala代码,里面有一个lazy val字段被用在一个闭包里,而这个闭包是要被序列化传到别的机器上去执行的。话题的重点就是在闭包前这段代码特意前访问了一下这个lazy val字段的值,引起同事讨论是否有必要。 其中一位同事对Scala不熟而...
Memo after reading Scala for the Impatient This is a memo for reading the book “Scala for the Impatient” Chapter 1 The Basics 1.3 Commonly Used Types Like Java, Scala has 7 numer...
Functional DevOps with Scala a Kubernetes Context As a functional backend developer I’ve always been surprised by how DevOps stayed away of all the functional programming paradigm . Clea...
Scala 技术周刊 | 第12期 这里有最新的 Scala 社区动态、技术博文。 微信搜索 「scalacool」关注我们,及时获取最新资讯。 深度阅读 如何评价Functional Programming in Scala 这本书? ...