我总是编写我的JavaScript块
var functionName = function() {
if (someCondition) {
// stuff
} else {
// stuff
}
};
Run Code Online (Sandbox Code Playgroud)
但今天我看到了
var functionName = function() {
if (someCondition) {
// stuff
return;
}
// stuff
};
Run Code Online (Sandbox Code Playgroud)
我喜欢第一个例子在逻辑中更明确.你想要或不想以第二种方式展示它的原因是什么?
Emacs中有各种很酷的编程语言模式,用elisp编写,但显然没有特别支持elisp本身.
由于粘液不适用于elisp,我问自己是否所有elisp代码都只是在临时缓冲区被黑客攻击了?在编写elisp时是不是需要像粘液这样的东西,还是根本就不存在?是否有人使用ECB和语义进行更大的elisp项目?
在保存会话之前,我没有正确删除缓冲区吗?它似乎浮现在我打开的每个缓冲区上.我使用gvim与标准:tabe和:tabnew命令.
:tabe,做了一些工作:mksession! ~/session 保存我的会话状态:14bd:ls 确认#14已删除:mksession! ~/session 再次保存会话:qa:so ~/session在我的类实例化期间,我初始化一些不可选择的字段.因此,为了能够(un)正确地挑选我的类,我希望我的init方法可以在unpickling上调用.这似乎是它与旧式课程一起使用的方式.
对于新的样式类,我需要使用__new__和__getnewargs__.这是我做的:
import cPickle
class Blubb(object):
def __init__(self, value):
self.value = value
class Bla(Blubb):
def __new__(cls, value):
instance = super(Bla, cls).__new__(cls)
instance.__init__(value)
return instance
def __getnewargs__(self):
return self.value,
def __getstate__(self):
return {}
def __setstate__(self, dct):
pass
x = Bla(2)
print x.value
pickled = cPickle.dumps(x, 2)
x_ = cPickle.loads(pickled)
assert x_.value == 2
Run Code Online (Sandbox Code Playgroud)
如果不是这样的话,那就没问题了obj = C.__new__(C, *args).现在有**kwargs.所以我在我__new__和__init__方法中仅限于非关键字参数.
有谁知道解决这个问题的方法?这真的很不方便.
我将在几周内参加一个编程竞赛,并一直在处理过去的论文.我坚持的一个问题是调用一个递归函数,它计算所有可能的n位数的二进制整数,例如用户输入2,程序打印出00,01,10,11.解决这个问题的最佳方法是什么?怎么做?
此外,这是一场ACM比赛 - 是否有必要为这些比赛学习书籍?我应该读什么?这是一个月之内!我真的很紧张,不想让我的团队失望.
我对MySQL并不擅长,所以我经常发现自己准备的次优查询有效,但我知道必须非常低效.我希望你们能给我一些关于为什么以下查询不能正常工作的指针,以及我应该用什么方法来完成类似的查询.
我有以下表结构:
TABLE Files
files_id => INT(12), PRIMARY, AUTO INCREMENT, NOT NULL
files_name => VARCHAR(255), NOT NULL
(some other fields such as file type etc)
TABLE File_Permissions
perm_id => INT(12), PRIMARY, AUTO INCREMENT, NOT NULL
perm_files_id => INT(12), NOT NULL
perm_users_id => INT(12), NOT NULL
Run Code Online (Sandbox Code Playgroud)
我使用以下SQL提取允许用户查看的文件列表:
SELECT files_name FROM Files WHERE files_id IN
(SELECT perm_files_id FROM File_Permissions WHERE perm_users_id = 'xxxxxx');
Run Code Online (Sandbox Code Playgroud)
据我所知,这将遍历Files表中的数千条记录中的每条记录,并且每条记录执行一个子查询,该子查询从File_Permissions表中进行选择以检查用户的ID.
每次查询大约需要2秒钟.我确信这件事根本就是错的,我只是不知道它是什么.
非常感谢你的帮助!
我可以使用SqlAlchemy ORM-Mapper仅生成SQL代码吗?
使用简单的表格,我可以使用像
print users_table.select()
print users_table.insert()
print users_table.update()
print users_table.delete()
Run Code Online (Sandbox Code Playgroud)
但是使用ORM我只找到了SELECT-Statements的方法:
TestUser = User("John", "Doe")
print session.query(User)
Run Code Online (Sandbox Code Playgroud)
如何为INSERT/UPDATE/DELETE生成SQL(无需真正操作数据库)?
谢谢.
我有一个侧面导航,正在导入完整的网站导航,我想将其缩减为仅当前部分的子链接。结构是这样的:
<div class="sidebarLinks">
<ul>
<li> <!-- MAIN NAV SECTION -->
<a href="#" id="MainA">MainA</a>
</li>
<li> <!-- MAIN NAV SECTION -->
<a href="#" id="MainB">MainB</a>
<ul>
<li><a href="#" id="B-A">B-A</a></li>
<li><a href="#" id="B-B">B-B</a></li>
<li><a href="#" id="B-C">B-C</a></li>
</ul>
<li>
<li> <!-- MAIN NAV SECTION -->
<a href="#" id="MainC">MainC</a>
<ul>
<li><a href="#" id="C-A">C-A</a></li>
<li><a href="#" id="C-B">C-B</a></li>
<li><a href="#" id="C-C">C-C</a></li>
</ul>
<li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
因此,如果我在 BA 上,我希望在侧面导航中看到 BA、BB 和 BC,但不想看到 MainB 或任何其他链接。我已尝试以下操作,但它返回每个主导航部分(BB、CB 等)的第二个子项:
$(".sidebarLinks ul li:nth-child(2)").children().show();
Run Code Online (Sandbox Code Playgroud)
非常感谢任何提示。谢谢。
如果向控件/视图添加侦听器而不删除它,是否会创建内存泄漏?例如,onCreate向EditText侦听修改的侦听器添加侦听器.你需要在onDestroy中删除这个监听器吗?
我想如果你使用一个匿名监听器或一个实现监听器的局部变量,当Activity由于作用域规则而被销毁时,内存将被释放.
我可以看到内存泄漏的唯一方法是监听器是否在intent对象中传递.思考?