我如何在Scala中表达一个链接的任务? [英] How would I express a chained assignment in Scala?

查看:132
本文介绍了我如何在Scala中表达一个链接的任务?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  a = b = c; 

顺便说一下,我重新分配变量(不声明)。

解决方案

Scala中最接近的快捷语法只能在您声明 var val

  scala> val c = 1 
c:Int = 1

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

从Scala Reference,第4.1节


一个值声明val x 1 ,...,
x n :T是值声明val x <1> 的序列
的缩写:T;
...;一个值定义
val p 1 ,...,p n = e是一个
的顺序的速度
定义val p 1 = e; ...; val p n
= e。值定义val p1 ,...,p n :T = e是价值定义val p 1的
序列的简写
:T = e; ...; val p n :T = e。


这不适用于重新分配到 VAR 。 C / Java风格不起作用,原因如下: Scala作业评估到单位的动机是什么


How would I express the following java code in scala?

a = b = c;

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

解决方案

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

这篇关于我如何在Scala中表达一个链接的任务?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆