小编Gen*_*Hal的帖子

将单个参数和Seq传递给var-arg函数

我知道可以将单个参数传递给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中(如果重要的话)

scala variadic-functions

6
推荐指数
1
解决办法
3096
查看次数

显示模式时出现“aria-hidden elements do not contains focusable elements”问题

我在应用程序中使用React Modal,当它打开时,运行axe 可访问性工具会出现以下错误:

aria 隐藏元素不包含可聚焦元素

这是因为 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)

html javascript accessibility wai-aria reactjs

4
推荐指数
1
解决办法
1万
查看次数

在Clojure函数中检查多个if的更好方法?

我有一个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-usingcalculate-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)

谢谢!

if-statement idiomatic clojure

3
推荐指数
1
解决办法
673
查看次数