我有一个递归函数,它创建表示文件路径的对象(键是路径,值是关于文件的信息).它是递归的,因为它仅用于处理文件,因此如果遇到目录,则在目录上递归调用该函数.
所有这一切,我想在两个地图上做相当于集合的联合(即用递归调用的值更新的"主"地图).除了迭代一个地图并将每个键,其中的值分配给另一个地图中的相同内容之外,还有一种惯用的方法吗?
即:给定a,b
的类型map [string] *SomeObject
,以及a
和b
最终被填充,有没有什么办法来更新a
与所有的值b
?
我有一个Django站点的一小部分,它保持两个用户之间的主持聊天会话的状态.基本上,第一个用户讲3分钟(没有其他人可以),然后第二个用户说话,然后是30秒暂停,并且该过程再重复一次.我目前正在使用数据库和"RoomState"模型来管理房间的当前状态(谁可以说话等).状态转换受到客户端每隔10秒向我的一个视图发送"ping"AJAX POST消息的影响,该消息检查是否需要更改状态.
这有效,但肯定会感到hacky.我想知道是否有比django-celery + rabbitmq更轻量级的东西来管理计时器上的短期背景任务.我意识到web/Django的本质是无状态的,但我只是想看看是否有人有一个简单的建议来以更可靠的方式管理状态转换.
我正在寻找一种算法,它可以从较长的字符串生成一个短(fx 16个字符(不重要)哈希码/摘要).
主要要求是几乎相同的字符串应该导致相同的摘要.
Fx 2几乎相同的邮件:
嗨马丁.这里有一些...垃圾邮件给你.关心XYZ.=> AAAA AAAA AAAA AAAA
嗨博.这里有一些...垃圾邮件给你.关心EFG.=> AAAA AAAA AAAA AAAA
返回相同的消化(或几乎相同),作为不同的邮件:
你好Finn.这是一封测试邮件.=> CCCC CCCC CCCC CCCC
将返回不同的摘要.
此算法将成为垃圾邮件过滤器的一部分.过滤器将记住邮件中的摘要,它肯定是垃圾邮件.如果相同的摘要显示在有疑问的邮件中,相同的摘要将导致过滤器增加spamscore.
我知道Levenshtein,但它要求我先了解弦乐.在这种情况下,我没有这方面的信息.我可以获得这些信息,但这需要过滤器来存储所有垃圾邮件并检查每个邮件,这将是一个非常缓慢的过程.
也许一些松散的压缩算法加上两者之间的Levenshtein距离的计算可以起作用.
任何指针赞赏.
我正在构建一个简单的缓存代理,它拦截HTTP请求,在response.Body中抓取内容,然后将其写回客户端.问题是,一旦我从response.Body读取,写回客户端包含一个空主体(其他所有内容,如标题,按预期编写).
这是当前的代码:
func requestHandler(w http.ResponseWriter, r *http.Request) {
client := &http.Client{}
r.RequestURI = ""
response, err := client.Do(r)
defer response.Body.Close()
if err != nil {
log.Fatal(err)
}
content, _ := ioutil.ReadAll(response.Body)
cachePage(response.Request.URL.String(), content)
response.Write(w)
}
Run Code Online (Sandbox Code Playgroud)
如果我删除content, _
和cachePage
行,它工作正常.包含行,请求返回和空体.任何想法,我怎么能得到公正的Body
的http.Response
,仍然完整地写出的响应http.ResponseWriter
?
go ×2
python ×2
ajax ×1
algorithm ×1
asynchronous ×1
django ×1
io ×1
map ×1
similarity ×1
union ×1