Q
等号和类型不匹配
4
A
回答
7
不能在阶为此在一个行中,因为赋值表达式的结果类型(例如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
1
您必须分别编写多个作业。正如编译器所说,Scala中的一项任务返回Unit
,可以将其视为Java的void
。
1
你可以做
def assign[A](a:A)(fs: (A => Unit)*) = fs.foreach(_(a))
val r = new java.awt.Rectangle
assign(20)(r.x=_, r.y=_, r.width=_, r.height=_)
但这不是单独写的一切显然更糟。但至少你不必在Scala中键入“布局”每次:
val rectangle = new java.awt.Rectangle
import rectangle._
x = 20
y = 20
width = 20
height = 20
相关问题
- 1. 泛型类型和类型不匹配
- 2. Java:等号不匹配
- 3. ORA-6504型号不匹配
- 4. 匹配文字等号
- 5. 去不匹配的类型UINT64和INT32
- 6. 打开网站和类型不匹配
- 7. Haskell的类型不匹配INT和[INT]
- 8. 类型参数的类型不匹配
- 9. 类泛型的类型不匹配
- 10. Scala中的匹配类型符号
- 11. HTMLCanvasElement类型不匹配
- 12. VBA类型不匹配(13)
- 13. UNION类型不匹配
- 14. 类型不匹配 - JavaScript
- 15. Scala的类型不匹配
- 16. 类型不匹配:SiteEdit.ComponentPresentation
- 17. C#SqlBulkCopy类型不匹配
- 18. 数据类型不匹配
- 19. Excel VBA类型不匹配
- 20. 类型与glLightfv不匹配
- 21. 协会类型不匹配
- 22. Scala mapValues()类型不匹配
- 23. 类型不匹配VSFlexGrid VB6
- 24. VBScript类型不匹配
- 25. 数据类型不匹配
- 26. 类型不匹配:Server.HTMLEncode'ASP
- 27. 类型不匹配:'[string:'“]'
- 28. 类型不匹配MySQL
- 29. 类型与Data.PSQueue不匹配
- 30. C - 类型不匹配
......我想Scala是关于语法糖和“种类比较少,做多”的理念:/ – phineas 2011-05-17 13:17:14
@phineas如果你想在SWT中输入更少的内容来做更多的事情,一定要查看Dave Orme的[XScalaWT](http://www.coconut-palm-software.com/the_new_visual_editor/doku.php?id=blog:simplifying_swt_with_scala)库。 – 2011-05-17 13:19:30
@phineas - 这是Java可以更加简洁的少数几个领域之一。请注意,您给出的示例是一个相当糟糕的封装情况,然而!这是一种代码模式,我会立即将其视为一种“气味” – 2011-05-17 13:20:48