在Vim中,我们可以使用Ctrl + N或Ctrl + P完成代码完成.如何在IdeaVim for IntelliJ中配置它?
我试图解决一个老问题:
编写一个添加两个[整数]数字A和B的函数.不应该使用+或任何算术运算符.
最好的解决方案是这样的,引自" LintCode-A + B问题 ":
对于任何基数中的+ b,我们可以将加号视为两部分:1.a + b没有进位; 2.由a + b生成的进位.然后a + b等于第1部分加第2部分.如果part1 + part2产生更多进位,我们可以重复此过程,直到没有进位.
我可以理解这个算法,一切看起来都不错,所以我在lintcode上测试了它,下面粘贴了代码.
class Solution:
"""
@param a: The first integer
@param b: The second integer
@return: The sum of a and b
"""
def aplusb(self, a, b):
while b != 0:
carry = a & b
a = a ^ b
b = carry << 1
return a
Run Code Online (Sandbox Code Playgroud)
但令人惊讶的是,它Time Limit Exceeded在测试用例中给了我错误[100, -100].所以我在本地运行它并为每个循环打印a,b:
(-8, 8)
(-16, 16)
(-32, …Run Code Online (Sandbox Code Playgroud) 我已经看到了三种将内容写入HTTP响应的方法:
func Handler(w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "blabla.\n")
}
Run Code Online (Sandbox Code Playgroud)
和:
func Handler(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("blabla\n"))
}
Run Code Online (Sandbox Code Playgroud)
还有:
fmt.Fprintf(w, "blabla")
Run Code Online (Sandbox Code Playgroud)
他们之间有什么区别?哪一个更喜欢使用?
我目前正在研究Tour of Go,我认为goroutines的使用方式与Python生成器类似,特别是问题66.我认为66看起来很复杂,所以我把它重写为:
package main
import "fmt"
func fibonacci(c chan int) {
x, y := 1, 1
for {
c <- x
x, y = y, x + y
}
}
func main() {
c := make(chan int)
go fibonacci(c)
for i := 0; i < 10; i++ {
fmt.Println(<-c)
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎有效.几个问题:
fibonacci将尽快填满10个其他位置,并尽可能快地main消耗掉这些位置.这是正确的吗?这会比以1的缓冲区大小更高的性能而牺牲内存,对吗?fibonacci发送者关闭,当我们离开这里的范围时会发生什么?我的期望是,一旦c和go fibonacci超出范围,渠道和它的一切得到垃圾收集.我的直觉告诉我这可能不会发生什么.我按照如何在Flask中提供静态文件的说明,但仍然无法使其工作.
这是我的项目结构:
Project_path
|
+--app
| |
| +--main.py
+--static
|
+--js
|
+--jquery-1.11.2.min.js
Run Code Online (Sandbox Code Playgroud)
这是main.py:
@app.route('/js/<path:path>')
def serve_static(path):
root_dir = os.path.dirname(os.getcwd())
print(os.path.join(root_dir, 'static', 'js', path))
return app.send_static_file(os.path.join(root_dir, 'static', 'js', path))
Run Code Online (Sandbox Code Playgroud)
这是index.html:
...
<script type="text/javascript" src="/js/jquery-1.11.2.min.js"></script>
...
Run Code Online (Sandbox Code Playgroud)
而当我访问/,我可以看到在屏幕上打印javascript文件的正确路径
是Project_path/static/js/jquery-1.11.2.min.js.
但是,我还是
127.0.0.1 - - [22/Dec/2014 11:26:30] "GET /js/jquery-1.11.2.min.js HTTP/1.1" 404 -
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
编辑
在逐步完成该send_static_file方法之后,我会发现发生了什么.基本上,我不应该使用abspath作为参数,烧瓶有一个判断send_static_file:
if os.path.isabs(filename) or \
filename == '..' or \
filename.startswith('../'):
raise NotFound()
Run Code Online (Sandbox Code Playgroud)
因为filename …
Python 3.4.0介绍enum,我已经阅读了doc但仍然不知道它的用法.从我的角度来看,枚举是一种扩展namedtuple类型,可能不是真的.所以这些是我想知道的枚举:
我正在探索PyCharm的功能,以决定是否应该使用它(现在是PyDev).一切看起来都很棒,但我还没有办法让PyCharm突出显示css或js文件:

这是仅在商业版中提供的功能吗?
我经常遇到这种情况:我遇到了远程服务器并运行了一些程序,我想将他们的输出文件复制回我的本地机器.我所做的是记住远程机器上的文件路径,然后退出连接scp user@remote:filepath .
显然这不是最佳的.我正在寻找的是一种方法,让我scp文件回到本地机器而不退出连接.我做了一些搜索,几乎所有的结果都告诉我如何从我的本地机器上做scp,我已经知道了.
这可能吗?更好的是,是否可以不需要知道我本地机器的IP地址?
我不知道如果我清楚标题静止,我想做的是下一个案例:
>>> from django.contrib.contenttypes.models import ContentType
>>> ct = ContentType.objects.get(model='user')
>>> ct.model_class()
<class 'django.contrib.auth.models.User'>
>>> ct_class = ct.model_class()
>>> ct_class.username = 'hellow'
>>> ct_class.save()
TypeError: unbound method save() must be called with User instance as first argument (got nothing instead)
Run Code Online (Sandbox Code Playgroud)
我只想实例化我通过内容类型获得的任何模型.之后我需要做类似的事情, form = create_form_from_model(ct_class)
并准备好使用这个模型表单.
先感谢您!.
在角度为2的angular.io教程的服务部分,我点击了一个名为of.for的方法,例如:
getHeroes(): Observable<Hero[]> {
return of(HEROES);
}
Run Code Online (Sandbox Code Playgroud)
或在下面的样本:
getHero(id: number): Observable<Hero> {
// Todo: send the message _after_ fetching the hero
this.messageService.add(`HeroService: fetched hero id=${id}`);
return of(HEROES.find(hero => hero.id === id));
}
Run Code Online (Sandbox Code Playgroud)
在angular.io刚刚解释
使用()的RxJS返回一个模拟英雄的Observable(Observable).
并没有解释为什么我们应该使用功能,它究竟做了什么,它有什么好处?