scala - 等号和类型不匹配

标签 scala syntax

当使用标准小部件工具包( SWT )时,我通常使用类似这样的东西来定义我的 GridLayout :

layout.marginTop = layout.marginBottom = 
    layout.marginLeft = layout.marginRight =
        layout.horizontalSpacing = layout.verticalSpacing = 20

它适用于java但不适用于scala。
它给了我 type mismatch; Found: Unit Required: Int .

那么如何解决呢?

最佳答案

你不能在 Scala 中的一行中做到这一点,因为赋值表达式的结果类型(例如 a = b )是 Unit .你必须有 6 个单独的调用:

layout.marginTop = 20
layout.marginBottom = 20 
... etc

为什么赋值的结果类型是 Unit和 nmot 分配的值?我相信这是出于性能原因选择的 as outlined in this question .

有一个related question on assignment其中指出,在申报地点,可以通过:
val a, b, c = X

关于scala - 等号和类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6031175/

相关文章:

javascript - 为什么 ISN'T `foo: ' bar'` 是 Javascript 中的语法错误?

c++ - C++中函数中的可变参数数量

Scala-IDE - 具有不同签名的对象 `apply` 方法混合使用了吗?

Sonar 中的 Scala 插件

syntax - puppet :cron 计划 - "is not a valid hour"错误

javascript - 如果我们使用 vue-cli 和 webpack-simple 来初始化 vue 项目,那么我们在编码时使用 ES5 还是 ES6 呢?

c++ - 类型和空括号的分配。语法说明

每个 bin 包含多个条形的 Scala-Chart 直方图

eclipse - 在 eclipse Spark scala 调试 session 中,在哪里可以找到 RDD 中的数据?

scala - Akka/斯卡拉 : Can You Explain What's Going On in this Akka Streams Flow?