例:
public static void DoSomething<K,V>(IDictionary<K,V> items) {
items.Keys.Each(key => {
if (items[key] **is IEnumerable<?>**) { /* do something */ }
else { /* do something else */ }
}
Run Code Online (Sandbox Code Playgroud)
这可以不使用反射吗?我怎么说C#中的IEnumerable?我应该只使用IEnumerable,因为IEnumerable <>实现IEnumerable?
我希望我的程序输出以下HTML:
<!--[if lt IE 8]><link rel="stylesheet" href="../blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
Run Code Online (Sandbox Code Playgroud)
有没有办法用Hiccup输出html评论文字?
例如:
(defrecord Contract [^{:doc "primary identifiers..."} contract-id])
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用:
(doc Contract)
clojure.lang.Cons cannot be cast to clojure.lang.Symbol
[Thrown class java.lang.ClassCastException]
Run Code Online (Sandbox Code Playgroud)
也许你不能记录记录字段?
我有一堆函数可以映射到外部系统定义的某些代码:
(defn translate-from-ib-size-tick-field-code [val]
(condp = val
0 :bid-size
3 :ask-size
5 :last-size
8 :volume))
(defn translate-to-ib-size-tick-field-code [val]
(condp = val
:bid-size 0
:ask-size 3
:last-size 5
:volume 8))
Run Code Online (Sandbox Code Playgroud)
我想制作一个宏来删除重复:
#_ (translation-table size-tick-field-code
{:bid-size 0
:ask-size 3
:last-size 5
:volume 8})
Run Code Online (Sandbox Code Playgroud)
我开始像这样的宏:
(defmacro translation-table [name & vals]
`(defn ~(symbol (str "translate-to-ib-" name)) [val#]
(get ~@vals val#)))
Run Code Online (Sandbox Code Playgroud)
结果函数体似乎正确,但函数名称错误:
re-actor.conversions> (macroexpand `(translation-table monkey {:a 1 :b 2}))
(def translate-to-ib-re-actor.conversions/monkey
(.withMeta (clojure.core/fn translate-to-ib-re-actor.conversions/monkey
([val__10589__auto__]
(clojure.core/get {:a 1, :b 2} val__10589__auto__))) (.meta ...
Run Code Online (Sandbox Code Playgroud)
事实证明,我希望"translate-to-ib-"作为函数名称的一部分出现,而不是名称空间的前缀. …
喜欢如何更改F#交互式shell的颜色,但这次是Visual Studio 2010(RTM).
我尝试更改"只读区域"背景颜色,重新启动visual studio,背景颜色不是我选择的颜色.