小编Ken*_*Ken的帖子

如何使用多个操作制作意图

我想显示一个活动选择器,显示可以查看和/或编辑某些数据的所有应用程序.有没有一种简单的方法可以做到这一点,还是我必须实现自己的活动选择器对话框?或许我可以只是亚类Intent?谢谢.

android android-intent

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

IllegalStateException:尝试在宏中调用未绑定的fn

我正在尝试编写一个调用某些函数的宏.这些函数只能由宏使用,所以我将它们放在letfn包装宏中.伪代码:

(letfn [(fn-a [] ...)
        (fn-b [] ...)
        (fn-c [] (fn-b))]
  (defmacro my-macro [stuff]
   `(let [whatever# (fn-a)]
      (fn-c))))
Run Code Online (Sandbox Code Playgroud)

调用fn-afn-c工作,但是当fn-c试图调用fn-b我得到IllegalStateException:试图调用未绑定的fn:#'name.space/fn-b.这是为什么?

如果我把fn-bfn-c自己的defnS,一切正常.但我不想这样做,因为它不干净.

编辑:只是为了测试,我尝试将函数绑定放在内部,let但遇到了同样的异常.

macros clojure

7
推荐指数
1
解决办法
6136
查看次数

Clojure:如何评估本地范围内的引用形式?

我想定义一个宏,随机选择一个给定的表达式并对其进行评估.例如,

(equal-chance
  (println "1")
  (println "2"))
Run Code Online (Sandbox Code Playgroud)

应该打印"1"的一半时间和"2"打印另一半.

我试过用,

(defmacro equal-chance
  [& exprs]
    `(rand-nth '~exprs))
Run Code Online (Sandbox Code Playgroud)

但这会返回一个引用的表单,而不是对其进行评估(即它将返回(println "1")而不是实际打印"1").我无法使用,eval因为它不保留绑定.例如,

(let [x 10] (eval '(println x)))
Run Code Online (Sandbox Code Playgroud)

抱怨它无法解析符号x.

有没有办法在本地范围内评估报价表格?或者也许有更好的方法来解决这个问题?

clojure

5
推荐指数
1
解决办法
626
查看次数

我怎样才能在道路上进一步推断?

鉴于移动设备在短时间内的实时位置数据,如何在这条道路上进一步获得一对/一对,比如2英里,甚至更好,5分钟的驾驶?

我看到我可以使用谷歌的Roads API来搭配一对长途对话https://developers.google.com/maps/documentation/roads/snap,但这只会让我分道扬..

这将是一个Android应用程序.

android google-geocoder google-geocoding-api google-roads-api android-gps

5
推荐指数
1
解决办法
716
查看次数

如何减少Clojure中的可读性?

一个reduce电话f首先有一个参数.从视觉上讲,这通常是表格中最重要的部分.例如

(reduce
 (fn [[longest current] x]
   (let [tail (last current)
         next-seq (if (or (not tail) (> x tail))
                    (conj current x)
                    [x])
         new-longest (if (> (count next-seq) (count longest))
                       next-seq
                       longest)]
     [new-longest next-seq]))
 [[][]]
 col))
Run Code Online (Sandbox Code Playgroud)

问题是,val论证(在这种情况下[[][]])和col论证在下面,下面,你的眼睛有很长的路要走,以匹配那些参数f.

如果它按此顺序,它看起来更具可读性:

(reduceb val col
  (fn [x y]
    ...))
Run Code Online (Sandbox Code Playgroud)

我应该实现这个宏,还是我首先接近这个完全错误?

readability clojure

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

"?" 帮助按钮触发WM_HELP _and_ WM_LBUTTONUP

我有一个Windows应用程序,它注册一个处理对话框的WM_HELP消息的CALLBACK过程,以及一个处理自定义按钮的WM_LBUTTONUP消息的CALLBACK过程.

现在,当用户点击"?"时 按钮,然后单击自定义按钮,帮助打开按预期(在鼠标按下),但如果帮助窗口没有遮挡按钮,也会触发WM_LBUTTONUP消息以及自定义按钮(鼠标向上).这会导致按钮在用户只是寻求帮助时触发.

如果按下按钮是为了帮助,有没有办法阻止发送WM_LBUTTONUP消息?

编辑:自定义按钮使用STATIC控件实现.我相信这是因为它需要有一个图像而没有边框.因此,它不会发送BN_CLICKED通知.事实上,它似乎根本没有触发父母的WM_COMMAND.

谢谢

c++ windows winapi

2
推荐指数
1
解决办法
767
查看次数