How would I express a chained assignment in Scala?

后端 未结 5 1488
南方客
南方客 2021-01-05 01:05

How would I express the following java code in scala?

a = b = c;

By the way, I\'m re-assigning variables (not declaring).

5条回答
  •  花落未央
    2021-01-05 01:13

    The closest shortcut syntax in Scala can only be used when you declare a var or val.

    scala> val c = 1  
    c: Int = 1
    
    scala> val a, b = c
    a: Int = 1
    b: Int = 1
    

    From the Scala Reference, Section 4.1

    A value declaration val x1 , ... , xn: T is a shorthand for the sequence of value declarations val x1: T ; ...; val xn: T. A value definition val p1, ..., pn = e is a shorthand for the sequence of value definitions val p1 = e ; ...; val pn = e . A value definition val p1, ... , pn : T = e is a shorthand for the sequence of value definitions val p1 : T = e ; ...; val pn: T = e .

    This doesn't work for re-assignement to a var. The C/Java style doesn't work for reasons explained here: What is the Motivation for Scala Assignment Evaluating to Unit

提交回复
热议问题