(说明:这都应充满希望地发挥作用,但我此时无法测试。) 请对你本人的卫生检查。
页: 1
(defn download-web-page
"Downloads the webpage at the given url and returns its contents."
([^String url] (download-web-page url nil nil))
([^String url ^String user ^String password]
(with-open [client (doto (WebClient.)
(-> (.set_Credentials
(NetworkCredential. user password ""))
(->> (when user))))]
(.DownloadString client url))))
这对我来说似乎相当有利。 另一种做法:
(defn download-web-page
"Downloads the webpage at the given url and returns its contents."
([^String url] (download-web-page url nil nil))
([^String url ^String user ^String password]
(with-open [client (let [c (WebClient.)]
(when user
(.set_Credentials
(NetworkCredential. user password "")))
c)]
(.DownloadString client url))))
The convoluted ->
->> patterns from the first edition can be抽象地删除:
(defmacro doto-guard [guard action]
`(-> ~action ~guard))
然后,请你写
(doto (WebClient.)
(doto-guard (when user) (.setCredentials ...)))
在固定<代码>doto条款中加以混合时,有你可以多次使用的冰层财产。 如果在你的法典中更经常地提到这种事情,那是ice的。 否则,<代码>let-based edition should dovy.
(如果这种模式出现really)。 通常,对你们来说,宏观可以变得更加灵活...... 它还试图使其稍微达到<>无<>><>>>>><>><>>> 灵活,但先决条件是,将<条码>改为<条码>(时有条码)条码>,以便在使用时填写<条码>。 然而,选择特定版本的任何深层理由都必须从更广泛的角度看待。
分成两个职能机构只是一个风格问题——我更倾向于在没有实际提供全权证书的情况下不写<代码>nil nil。