小编max*_*man的帖子

Rust的`String`和`str`之间有什么区别?

为什么Rust有StringstrString和之间有什么区别str?什么时候使用String而不是str反之亦然?其中一个被弃用了吗?

string rust

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

如何在Rust中打印变量的类型?

我有以下内容:

let mut my_number = 32.90;
Run Code Online (Sandbox Code Playgroud)

我该如何打印my_number

使用typetype_of没有奏效.还有其他方法可以打印数字的类型吗?

types rust

204
推荐指数
11
解决办法
6万
查看次数

Lisp在现实世界中

我已经尝试过Lisp(实际上是Scheme)并发现它是一种非常漂亮的语言,我有兴趣学习更多.但是,似乎Lisp从未在严肃的项目中使用过,而且我没有看到它被列为任何职位发布所需的技能.我有兴趣听到任何使用过Lisp或者在"现实世界"中使用它的人,或者谁知道它是否被认为是纯粹的学术语言.

lisp scheme clojure common-lisp

144
推荐指数
25
解决办法
3万
查看次数

如何在Rust中拆分字符串?

文档来看,目前尚不清楚.在Java中,您可以使用如下split方法:

"some string 123 ffd".split("123");
Run Code Online (Sandbox Code Playgroud)

rust

103
推荐指数
6
解决办法
7万
查看次数

是否有适用于Python 3的OAuth库?

Python 3的最新形式的Oauth是什么?

我正在尝试使用我的经纪人API创建一个股票筛选器,它使用Oauth.我发现的大部分信息都已过时或存在冲突.我看过以下模块引用:

Oauth - 似乎是原始的,现在已经过时了.我得到一个错误"'模块'对象没有属性'消费者'"

Oauth2 - 较新的版本,显然也已过时了?在线引用最多的一个.在点子中出现故障/无法弄清楚如何安装它.

Oauthlib - IIRC声称是Oauth和Oauth2的新替代品

Rauth.OAuth2Service - 也可能替代Oauth和Oauth2?

要求 - ?

Oauth_hook - ?

pyoauth2 - 我在pyoauth2的init中没有一个名为"client"的模块时收到错误.

他们似乎没有按预期工作,我觉得这是由于Oauth 3支持率低.你有没有让OAuth在Python 3中工作?如果是这样,你是怎么做到的?

python oauth oauth-2.0 python-3.x

12
推荐指数
2
解决办法
6458
查看次数

如何使用Python检索给定用户的所有推文和属性?

我正在尝试从Twitter检索数据,使用Tweepy获取在命令行输入的用户名.我想提取有关状态和用户的相当多的数据,所以提出以下内容:

请注意,我正在导入所有必需的模块,并且有oauth +键(这里没有包含它),文件名是正确的,只是更改了:

# define user to get tweets for. accepts input from user
user = tweepy.api.get_user(input("Please enter the twitter username: "))

# Display basic details for twitter user name
print (" ")
print ("Basic information for", user.name)
print ("Screen Name:", user.screen_name)
print ("Name: ", user.name)
print ("Twitter Unique ID: ", user.id)
print ("Account created at: ", user.created_at)

timeline = api.user_timeline(screen_name=user, include_rts=True, count=100)
    for tweet in timeline:
        print ("ID:", tweet.id)
        print ("User ID:", tweet.user.id)
        print ("Text:", tweet.text)
        print ("Created:", tweet.created_at) …
Run Code Online (Sandbox Code Playgroud)

python twitter oauth tweepy

11
推荐指数
2
解决办法
2万
查看次数

如何使用Rust的BinaryHeap实现f64的最小堆?

我想用浮点数填充二进制堆 - 更具体地说,我想实现一个小堆.

看起来漂浮物不支持Ord,因此不能开箱即用.到目前为止,我试图包装它们的尝试失败了.然而,似乎如果我可以包装它们,那么我也可以Ord以这样的方式实现它将有效地创建BinaryHeap一个小堆.

这是我尝试的包装器的一个例子:

#[derive(PartialEq, PartialOrd)]
struct MinNonNan(f64);

impl Eq for MinNonNan {}

impl Ord for MinNonNan {
    fn cmp(&self, other: &MinNonNan) -> Ordering {
        let ord = self.partial_cmp(other).unwrap();
        match ord {
            Ordering::Greater => Ordering::Less,
            Ordering::Less => Ordering::Greater,
            Ordering::Equal => ord
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是pop返回值,就像它是最大堆一样.

究竟做什么,我需要做的填充BinaryHeapf64价值观为最小堆?

min-heap rust

10
推荐指数
2
解决办法
2124
查看次数

在Clojure中共享命名空间之间的功能

我可能会以错误的方式接近这一点,所以请原谅我的天真:

为了学习Clojure,我已经开始将我的OAuth客户端库移植到Clojure.我这样做是通过包装clj-http来实现的,就像我在Python库中包装Python Requests一样.到目前为止,这似乎工作得很好,我真的很高兴看到Clojure中的实现变得生动.

但是我遇到了一个问题:我计划支持OAuth 1.0和2.0,并将各自的功能分成两个文件:oauth1.clj和oauth2.clj.现在,每个文件理想情况下应该公开一组与HTTP谓词对应的函数.

(ns accord.oauth2)

...

(defn get
  [serv uri & [req]]
  ((:request serv) serv (merge req {:method :get :url uri})))
Run Code Online (Sandbox Code Playgroud)

这些函数基本相同,实际上现在在oauth1.clj和oauth2.clj之间完全相同.我的第一反应是将这些函数移动到core.clj中,然后在相应的OAuth名称空间(oauth1,oauth2)中要求它们,以避免两次写入相同的代码.

只要我在文件中使用引用的函数,即oauth1.clj或oauth2.clj,这就没问题了.但是,假设我们想要使用这个库,因为我打算(这里是REPL,或者你的程序),如下所示:

=> (require '[accord.oauth2 :as oauth2])  ;; require the library's oauth2 namespace

...

=> (oauth2/get my-service "http://example.com/endpoint")  ;; use the HTTP functions
Run Code Online (Sandbox Code Playgroud)

oauth2/get找不到var,因为单独将它拉入oauth2.clj中的命名空间似乎并没有公开它,好像它实际上在那个命名空间中一样.我不想用更多的功能包装它们,因为这基本上违背了目的; 函数是如此简单(它们只是包装一个request函数)我会在三个地方写它们,基本上,如果我这样做的话.

我确信我不是正确地在Clojure中使用命名空间,而且可能是习惯性地考虑抽象问题和代码共享的一般方法.

所以我想知道这个惯用解决方案是什么?我完全错误地采取了这种方式吗?

编辑:

这是问题的简化:https://gist.github.com/maxcountryman/5228259

请注意,目标是一次编写HTTP谓词函数.他们不需要特殊的派遣类型或类似的东西.他们已经很好了.问题是它们不会暴露于accord.oauth1或者accord.oauth2,accord.oauth2例如,当您的程序需要时.

如果这是Python的,我们可以只导入功能是这样的:from accord.core import get, post, put, ...accord.oauth1accord.oauth2,然后当我们使用accord.oauth1,我们将有机会获得所有这些进口的功能,例如模块 …

abstraction namespaces function clojure

9
推荐指数
2
解决办法
1134
查看次数

"核心"命名空间命名法从何处衍生出来?

我对Clojure比较陌生,但我注意到很多项目实现了一个"核心"命名空间; 例如,foobar.core似乎是一种非常常见的模式.这背后的历史是什么?为什么它是事实上的标准?

namespaces clojure nomenclature

9
推荐指数
1
解决办法
990
查看次数

在Clojure地图中"更新"给定键的习惯方法?

假设我们有一张类似于的地图:

(def m {:a {:foo "bar"}})
Run Code Online (Sandbox Code Playgroud)

现在我们要更新密钥:一个带有一些新值的m:

(def vs {:baz "qux"})
Run Code Online (Sandbox Code Playgroud)

如果这是Python,我们可以做类似的事情:

>>> d = {'a': {'foo': 'bar'}}
>>> d['a'].update({'baz': 'qux'})
>>> d
{'a': {'foo': 'bar', 'baz': 'qux'}}
Run Code Online (Sandbox Code Playgroud)

我发现最简单的Clojure等价物是定义一个这样的函数:

(defn update-key
  "
  Updates a given key `k` over a map `m` with a map of values `vs`.
  "
  [k m vs]
  (assoc m k (merge (k m) vs)))
Run Code Online (Sandbox Code Playgroud)

然后调用如下:

(update-key :a m vs)
; => {:a {:foo "bar" :baz "qux"}}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:实现与update()Python dicts提供的方法相同的功能的最惯用和最正确的方法是什么?

merge clojure map

8
推荐指数
1
解决办法
2668
查看次数