程序设计

专业和发烧友程序员的问答

11
如何覆盖OnBeforeUnload对话框并将其替换为我自己的对话框?
我需要在用户离开页面之前警告用户有关未保存的更改的信息(这是一个非常常见的问题)。 window.onbeforeunload=handler 这可以工作,但是会引发一个默认对话框,其中包含包装我自己的文本的刺激性标准消息。我需要完全替换标准消息,以便文本清晰,或者(甚至更好)使用jQuery将整个对话框替换为模式对话框。 到目前为止,我失败了,但是我还没有找到其他似乎有答案的人。可能吗 我页面中的Javascript: <script type="text/javascript"> window.onbeforeunload=closeIt; </script> closeIt()函数: function closeIt() { if (changes == "true" || files == "true") { return "Here you can append a custom message to the default dialog."; } } 我使用jQuery和jqModal尝试了这种事情(使用自定义确认对话框): $(window).beforeunload(function() { confirm('new message: ' + this.href + ' !', this.href); return false; …

13
为什么我们必须在C#中同时定义==和!=?
C#编译器要求,每当自定义类型定义operator时==,它也必须定义!=(请参阅此处)。 为什么? 我很好奇,为什么设计师会认为这是必要的,为什么当仅存在另一个运算符时,编译器为什么不能默认其中一个运算符的合理实现。例如,Lua允许您仅定义相等运算符,而另一个则免费。C#可以通过要求您定义==或同时定义==和!=,然后将缺少的!=运算符自动编译为来执行相同的操作!(left == right)。 我知道有些情况下有些实体可能不相等或不相等(例如IEEE-754 NaN),但是在某些特殊情况下,这似乎是个例外,而不是规则。因此,这不能解释为什么C#编译器设计人员将例外作为规则。 我已经看到了定义平等运算符的工艺不佳的情况,然后不平等运算符是一个复制粘贴,每个比较都相反,每个&&切换为||。(您明白了……基本上!(a == b)通过De Morgan的规则扩展了)。与Lua的情况一样,编译器可以通过设计消除这种糟糕的做法。 注意:运算符<> <=> =也是如此。我无法想象需要用不自然的方式定义它们的情况。Lua允许您仅定义<和<=,并通过前者的否定自然定义> =和>。C#为什么不做同样的事情(至少是“默认”)? 编辑 显然,有充分的理由允许程序员执行他们喜欢的相等性和不平等性检查。一些答案指出了可能不错的情况。 但是,我的问题的核心是,为什么在C#中通常在逻辑上不必要时强制执行此操作? 这与.NET接口(如)的设计选择形成了鲜明的对比Object.Equals,IEquatable.Equals IEqualityComparer.Equals其中缺少NotEquals对应项表明该框架将!Equals()对象视为不相等,仅此而已。此外,类Dictionary和方法之类的类.Contains()仅取决于上述接口,即使定义了它们也不直接使用运算符。事实上,当ReSharper的生成平等部件,它定义两个==和!=来讲Equals(),甚至那么只有如果用户选择,以产生在所有运营商。框架不需要相等运算符来了解对象相等。 基本上,.NET框架不关心这些运算符,只关心几种Equals方法。要求用户同时定义==和!=运算符的决定完全与语言设计有关,而就.NET而言,与对象语义无关。

18
并行编程和并行编程有什么区别?
并行编程和并行编程有什么区别?我问谷歌,但没有找到任何可以帮助我理解这种差异的东西。你能给我两个例子吗? 现在,我找到了以下解释:http : //www.linux-mag.com/id/7411-但是“并发是程序的属性”与“并行执行是机器的属性”对我来说还不够-我还是不能说什么。





11
用逗号分割并在Python中去除空格
我有一些在逗号处分割的python代码,但没有去除空格: >>> string = "blah, lots , of , spaces, here " >>> mylist = string.split(',') >>> print mylist ['blah', ' lots ', ' of ', ' spaces', ' here '] 我宁愿这样删除空格: ['blah', 'lots', 'of', 'spaces', 'here'] 我知道我可以遍历list和strip()每个项目,但是,因为这是Python,所以我猜有一种更快,更轻松和更优雅的方法。
346 python  whitespace  strip 

17
如何在C中连接const / literal字符串?
我正在使用C语言工作,因此我不得不串联一些东西。 现在我有这个: message = strcat("TEXT ", var); message2 = strcat(strcat("TEXT ", foo), strcat(" TEXT ", bar)); 现在,如果您有C方面的经验,我相信您会在尝试运行它时遇到分段错误。那么我该如何解决呢?
346 c  string  concatenation 

10
如何安装适用于Python的yaml软件包?
我有一个使用YAML的Python程序。我尝试使用将其安装在新服务器上pip install yaml,并且返回以下内容: $ sudo pip install yaml Downloading/unpacking yaml Could not find any downloads that satisfy the requirement yaml No distributions at all found for yaml Storing complete log in /home/pa/.pip/pip.log 如何安装适用于Python的yaml软件包?我正在运行Python 2.7。(作业系统:Debian Wheezy)
346 python  python-2.7  yaml  pip  pyyaml 

12
在Java中使用final关键字是否可以提高性能?
在Java中,我们看到了很多final可以使用关键字但很少使用的地方。 例如: String str = "abc"; System.out.println(str); 在上述情况下,str可以,final但是通常不这样做。 当一个方法永远不会被覆盖时,我们可以使用final关键字。类似地,对于不会被继承的类。 在任何或所有这些情况下使用final关键字是否真的可以提高性能?如果是这样,那又如何?请解释。如果final对性能的正确使用确实很重要,那么Java程序员应该养成什么习惯来充分利用关键字?
346 java  final 

8
on_delete对Django模型有什么作用?
我对Django非常熟悉,但是最近发现on_delete=models.CASCADE模型中存在一个选项,我在文档中搜索了相同的选项,但找不到以下内容: 在Django 1.9中进行了更改: on_delete现在可以用作第二个位置参数(以前通常只作为关键字参数传递)。在Django 2.0中,这是必填参数。 使用的一个例子是 from django.db import models class Car(models.Model): manufacturer = models.ForeignKey( 'Manufacturer', on_delete=models.CASCADE, ) # ... class Manufacturer(models.Model): # ... pass on_delete是做什么的?(我想如果删除模型,要执行的操作) 怎么models.CASCADE办?(文档中的任何提示) 还有其他可用的选项(如果我的猜测是正确的)? 有关此文档的位置在哪里?

7
对数据库驱动的应用程序进行单元测试的最佳策略是什么?
我使用由后端复杂程度各异的数据库驱动的许多Web应用程序。通常,有一个与业务和表示逻辑分开的ORM层。这使得对业务逻辑进行单元测试相当简单。事情可以在离散模块中实现,并且测试所需的任何数据都可以通过对象模拟来伪造。 但是测试ORM和数据库本身始终充满问题和妥协。 多年来,我尝试了一些策略,但没有一个完全令我满意。 用已知数据加载测试数据库。针对ORM运行测试,并确认返回正确的数据。此处的缺点是测试数据库必须跟上应用程序数据库中的所有架构更改,并且可能不同步。它还依赖于人工数据,并且可能不会暴露由于愚蠢的用户输入而发生的错误。最后,如果测试数据库很小,它将不会像索引丢失那样显示低效率。(好吧,最后一个并不是真正的单元测试应该使用什么,但这没有什么害处。) 加载生产数据库的副本并对此进行测试。这里的问题是您可能在任何给定时间都不知道生产数据库中的内容。如果数据随时间变化,则可能需要重写测试。 有人指出,这两种策略都依赖于特定的数据,并且单元测试应该仅测试功能。为此,我看到了建议: 使用模拟数据库服务器,并仅检查ORM是否正在响应给定方法调用而发送正确的查询。 您使用了哪些策略来测试数据库驱动的应用程序(如果有)?什么对您最有效?

6
Node.js项目的文件夹结构
我注意到,Node.js项目通常包含以下文件夹: / libs,/ vendor,/ support,/ spec,/ tests 这些到底是什么意思?它们之间有什么区别,我应该在哪里包含引用的代码?
346 node.js 

12
如何从任何地方获取软件包名称?
我知道Context.getApplicationContext()和View.getContext()的可用性,通过它们我可以实际调用Context.getPackageName()来检索应用程序的程序包名称。 如果我从一个可用a View或一个Activity对象可用的方法中调用它们,它们会起作用,但是如果我想从一个完全独立的类中使用no View或查找包名称Activity,是否有办法(直接或间接)呢?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.