我知道可以将单个参数传递给vararg函数,并且可以使用seq,:_*
但是可以传递两者吗?
例如:
scala> object X { def y(s: String*) = println(s) }
defined module X
scala> X.y("a", "b", "c")
WrappedArray(a, b, c)
scala> X.y(Seq("a", "b", "c"):_*)
List(a, b, c)
scala> X.y("a", Seq("b", "c"):_*)
<console>:9: error: no `: _*' annotation allowed here
(such annotations are only allowed in arguments to *-parameters)
X.y("a", Seq("b", "c"):_*)
^
Run Code Online (Sandbox Code Playgroud)
编辑:在Scala 2.10中(如果重要的话)
我在应用程序中使用React Modal,当它打开时,运行axe 可访问性工具会出现以下错误:
这是因为 React 模态将 a 添加aria-hidden="true"
到应用程序的根元素(我的所有应用程序组件都在该 div 下呈现,但不是模态),但它不会更新选项卡索引或禁用每个可聚焦元素。
然而,React 模式会捕获键盘焦点,因此用户无法跳出模式并单击背景关闭模式。
所以我的问题是:
这实际上是我需要解决的问题吗?或者这是一个误报,因为该工具不了解模态捕获焦点?
如果确实需要修复此问题,那么我唯一的选择是手动更新选项卡索引或禁用每个可聚焦元素吗?
模式打开时的 HTML 看起来有点像这样:
<div data-react-modal-body-trap="" tabindex="0" style="position: absolute; opacity: 0;"></div>
<div id="root" aria-hidden="true">application content</div>
<div class="ReactModalPortal">
<div class="ReactModal__Overlay ReactModal__Overlay--after-open modal-overlay-6fODnA">
<div tabindex="-1" role="dialog">modal content</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 我有一个Clojure函数,看起来像下面这样.
(defn calculate-stuff [data]
(if (some-simple-validation data)
(create-error data)
(let [foo (calculate-stuff-using data)]
(if (failed? foo)
(create-error foo)
(let [bar (calculate-more-stuff-using foo)]
(if (failed? bar)
(create-error bar)
(calculate-response bar)))))))
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但有点难以阅读,所以我想知道是否有更惯用的Clojure写作方式?
我考虑过制作some-simple-validation
,calculate-stuff-using
并calculate-more-stuff-using
抛出异常并使用try/catch块,但感觉就像使用控制流的异常一样,感觉不正确.
我不能让异常逃避这个功能,因为我正在使用它来映射一系列地图,我仍然想继续处理剩余部分.
我猜我所追求的是这样的?
(defn calculate-stuff [data]
(let-with-checking-function
[valid-data (some-simple-validation data)
foo (calculate-stuff-using valid-data)
bar (calculate-more-stuff-using foo)]
failed?) ; this function is used to check each variable
(create-error %) ; % is the variable that failed
(calculate-response bar)) ; all variables are OK
Run Code Online (Sandbox Code Playgroud)
谢谢!