有没有办法在F#中访问类似于C#dynamic的DLR对象(例如,DynamicObject子类实例)成员(属性和方法)?
我正在尝试从ul对象创建一个轮播,其中li元素是块,ul是轮播容器.我已经尝试了两种方法但是neather似乎工作,溢出属性不能正常运行.
方法1:
    <ul style="overflow:hidden; width:200px; height:120px; display:block;">
        <li style="float:left; display:block; width:100px; height:100px; margin:0 20px 0 0; background-color:black;"> </li>
        <li style="float:left; display:block; width:100px; height:100px; margin:0 20px 0 0; background-color:black;"> </li>
        <li style="float:left; display:block; width:100px; height:100px; margin:0 20px 0 0; background-color:black;"> </li>
    </ul>
这种方法的问题是元素在溢出时不会水平堆叠(这是我想要/期望的).我怀疑这是由于显示:li元素中的块,但是它们需要有固定的宽度/高度,有没有办法解决这个问题?
方法2:
.ui-carousel
{
    display:block;
    overflow: hidden;
    list-style: none;
}
.ui-carousel-element
{
    margin:0;
    padding:0;
    display:block;
    border:2px solid black;
    float:left;
}
<ul style="width: 200px; height: 120px; padding-top: 20px;" id="pages" class="ui-widget ui-carousel">
    <li style="width: 80px; height: 80px; position: absolute; top: 20px; left: 0px;" class="ui-carousel-element …有没有更简单的方法在Clojure中编写此代码:
(def queue (atom {:top nil :queue PersistentQueue/EMPTY}))
(swap! queue #(hash-map :top nil :queue (conj (:queue %) "foo")))
(let [{:keys [top]} (swap! queue
                        #(hash-map 
                           :top (peek (:queue %)) 
                           :queue (pop (:queue %))))]
  (println top))
写它的另一种方法是:
(def queue (atom PersistentQueue/EMPTY))
(swap! queue conj "foo")
(let [top (atom nil)]
  (swap! queue 
         (fn [queue]
           (reset! top (peek queue))
           (pop queue)))
  (println @top))
这似乎更糟糕.
无论如何,我有一个使用原子排队很多的代码,并使用前一种方法使代码真的令人困惑,我希望有类似的东西:
(swap! queue (fn [queue] (AtomSwapResult. atom-value return-value))
或交换中的一些类似机制!函数,因为它似乎是你想要经常做的事情(甚至不限于排队,我已经遇到了几个其他用例,其中返回一个不同的值是有用的,例如,交换的旧值out)并且它不会打破原子/交换!语义.
有没有办法在Clojure中做到这一点?
我想通过Nest.js依赖注入服务创建一个动态加载类的实例.
在Angular中我会使用Injector.create,Nest.js中的等价物是什么?