等号和类型不匹配

f4l*_*lco 4 syntax scala

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

layout.marginTop = layout.marginBottom = 
    layout.marginLeft = layout.marginRight =
        layout.horizontalSpacing = layout.verticalSpacing = 20
Run Code Online (Sandbox Code Playgroud)

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

那怎么解决呢?

oxb*_*kes 7

您不能在scala中的一行中执行此操作,因为赋值表达式的结果类型(例如a = b)是Unit.你必须有6个单独的电话:

layout.marginTop = 20
layout.marginBottom = 20 
... etc
Run Code Online (Sandbox Code Playgroud)

为什么赋值的结果类型Unit和nmot指定的值?我认为这是出于性能原因而选择的,如本问题所述.

关于转让相关问题指出,在申报地点,可以通过以下方式:

val a, b, c = X
Run Code Online (Sandbox Code Playgroud)