|
1
7
你可能应该试着把这个问题再解决一点,但是 当然 包括您的实际错误!
但是,有
无三元运算符(
这是因为(
几乎
-请看下面凯文的评论)scala中的所有内容都是
表达
返回类型。这在Java中是不正确的,有些东西是语句(没有类型)。对于scala,最好使用合成,而不是分叉(即
请注意,您示例中的三元运算无论如何都是无关的,因为
(在您的评论中,您可能试图分配
|
|
2
4
这里有两种“代码气味”,这意味着一个更好、更光亮的设计可能就在眼前:
那么,回到第一个原则,在更“惯用”的风格中,如何实现相同的结果呢?从最初的设计开始(据我所知):
基本上,您只需要计算代码块运行所需的时间。如果有一种方法可以将“代码块”传递给一个函数,那么也许,只是也许……幸运的是,scala可以做到这一点,只需使用一个by-name参数:
看看这个
通过用大括号而不是()圆括号包装参数列表,可以使其看起来像一个内置的控制结构,并按如下方式使用:
或者,您可以将println行为推回到timeit函数中,但是如果您以后想在不将其打印到控制台的情况下重新使用它来计时,这会使生活变得更困难:
这是另一个技巧,多参数块。它允许您对第一个块使用括号,对第二个块使用大括号:
当然,在这个模式上你可以做上百万种其他的变体,有不同程度的复杂度/复杂性,但是它应该足以让你开始…… |