.Net框架中的大量类被标记为"已密封",从而阻止您使用自己的类继承这些类.当然,这违背了面向对象的本质,您可以在其中扩展和重新定义现有对象的行为.
是否有充分的理由存在'sealed'关键字?
例如,Silverlight中的NotifyCollectionChangedEventArgs是密封的.我想创建自己的ObservableCollection版本,它支持AddRange和RemoveRange,但NCCEA的Silverlight版本不提供支持NewItems和OldItems属性的多个项目的构造函数,这些项目已经被定义为IList.通常,我只是用我自己的变体扩展了类,它覆盖了NewItems和OldItems属性,但是在这种情况下我不能,而且我看不出为什么会出现这种情况.
我正在创建一个网站,我需要从RSS源显示前5条记录,这些记录需要按日期和时间排序.
RSS源中的日期字段采用以下格式:"周一,2009年2月16日16:02:44 GMT"
我有很大的问题让记录正确排序 - 我已经尝试过很多我见过的不同代码示例,但似乎都没有正确排序记录.我的XSL表的代码如下所示,有问题的供稿在 这里.
非常感谢任何人的帮助!
谢谢,
克里斯.
XSL代码:
<xsl:stylesheet version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:digg="http://digg.com//docs/diggrss/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<xsl:template match="/">
<xsl:for-each select="//*[local-name()='item'][position() < 6]">
<p>
<a>
<xsl:attribute name="href">
<xsl:value-of select="*[local-name()='link']"/></xsl:attribute>
<xsl:attribute name="target">
<xsl:text>top</xsl:text>
</xsl:attribute>
<xsl:value-of select="*[local-name()='title']"/>
</a>
<br/>
<span class="smaller"><xsl:value-of select="*[local-name()='pubDate']" disable-output-escaping="yes"/></span>
</p>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
自从Smalltalk开始以来,我已经成为一名Java程序员超过10年了.我认为下一个大型语言很可能是在无处不在的Java虚拟机上运行的.我想利用Scala(以及其他语言)中的一些特性 - case类层次结构,闭包,类型推断的语句,因为它将允许我编写更简洁明了(我希望)的代码.更接近Smalltalk!
所有在Java中都是第二天的东西:
antjars中XML,Spring等等)我担心玩一些宠物项目和实际上在工作场所愤怒地使用它之间的区别有点太多了.
(显然人们正在使用 Scala - 但是有人建立实际的,因为想要一个更好的词,企业应用程序?)
今天我修复了一个应用程序中的错误,该错误可能导致servlet请求/响应周期中的无限循环.
所以只是出于好奇:如果我的servlet实际上被困在for(;;)循环中会发生什么?
是否有可能恢复?tomcat会检测到这个吗?可以在不重新启动服务器的情况下杀死此实例吗?
或者这是可能发生的最糟糕的事情之一,以及一种非常快速的杀死网络容器的方法?
编辑:这是一个真正的无限循环消耗CPU始终消耗CPU而不是内存.我让它运行了几分钟.我想,我可以确认tomcat不会检测到这种事情:-)
我理解LET和LET*之间的区别(并行与顺序绑定),作为理论问题,它非常有意义.但有没有你真的需要LET的情况?在我最近看过的所有Lisp代码中,您可以用LET*替换每个LET而不做任何更改.
编辑:好的,我理解为什么有些人发明了LET*,大概是作为一个宏,回归的时候.我的问题是,鉴于LET*存在,是否有理由让LET留在身边?您是否编写了任何实际的Lisp代码,其中LET*不能像普通的LET那样工作?
我不买效率论证.首先,认识到LET*可以编译成像LET一样高效的情况,这似乎并不难.其次,CL规范中有很多东西似乎根本就不是围绕效率而设计的.(当你最后一次看到带有类型声明的循环时?那些很难弄清楚我从未见过它们使用过.)在20世纪80年代后期的Dick Gabriel基准测试之前,CL 非常缓慢.
看起来这是另一种向后兼容的情况:明智的是,没有人愿意冒险破坏像LET那样基本的东西.这是我的预感,但是听到没有人有一个我丢失的愚蠢简单的案例令人欣慰,因为LET比LET*更容易让事情变得简单.
在Python中,是否有更好的方法将字符串参数化为正则表达式,而不是像这样手动执行:
test = 'flobalob'
names = ['a', 'b', 'c']
for name in names:
regexp = "%s" % (name)
print regexp, re.search(regexp, test)
Run Code Online (Sandbox Code Playgroud)
这个noddy示例尝试依次匹配每个名称.我知道有更好的方法可以做到这一点,但这只是一个简单的例子,纯粹是为了说明这一点.
答案似乎是否定的,没有真正的选择.在python中对正则表达式进行参数化的最佳方法如上所述,或者使用衍生函数str.format().我试着写一个通用的问题,而不是'修复ma codez,kthxbye'.对于那些仍然感兴趣的人,我已经充实了一个更贴近我需求的例子:
for diskfilename in os.listdir(''):
filenames = ['bob.txt', 'fred.txt', 'paul.txt']
for filename in filenames:
name, ext = filename.split('.')
regexp = "%s.*\.%s" % (name, ext)
m = re.search(regexp, diskfilename)
if m:
print diskfilename, regexp, re.search(regexp, diskfilename)
# ...
Run Code Online (Sandbox Code Playgroud)
我试图根据文件的文件名找出文件的"类型" <filename>_<date>.<extension>.在我的真实代码中,filenames数组是一个dict,包含一个匹配的函数.
我考虑过的其他方式:
在数组中有一个正则表达式.我已经有一个没有任何正则表达式魔法的文件名数组,所以我不喜欢这样做.我已经在我的代码中的其他地方完成了这个并且它是一团糟(尽管有必要).
仅匹配文件名的开头.这可行,但会打破文件的.bak副本等.在某些时候我可能想从文件名中提取日期,所以无论如何都需要使用正则表达式.
感谢响应建议正则表达式的替代方法,以实现相同的最终结果.我对现在和未来的正则表达式参数化更感兴趣.我从未遇到过fnmatch …
我正在从Linux Web服务器下载perl CGI文件.
它有Unix换行符.我在Windows PC上用一个体面的文本编辑器(Geany)编辑它,它保留了那些换行符.
然后我再次使用Filezilla上传它,它有DOS换行符,这会阻止它工作.
我知道它是Filezilla,而不是Geany,因为即使我只是下载它并重新上传它,问题也会再次发生.
如果我可以上传本地文件(3611)字节并覆盖远程文件(3753字节),Filezilla每次都会问我,这些数字之间的差异是我文件中的行数.但是,当我这样做时,服务器上的那个再次是3753字节并且不起作用.
我正在通过代理服务器,可能是一个因素?真是奇怪的事情是我在另一天在不同的XP PC上做了同样的事情,这很好.命令行FTP工作正常.
如果我有一个从我的表单请求我的数据的循环:
for ($i=0;$i < count($_POST['checkbx']);$i++) {
// calculate the file from the checkbx
$filename = $_POST['checkbx'][$i];
$clearfilename = substr($filename, strrpos ($filename, "/") + 1);
echo "'".$filename."',";
}
Run Code Online (Sandbox Code Playgroud)
如何将其添加到下面的示例数组中?:
$files = array(
'files.extension',
'files.extension',
);
Run Code Online (Sandbox Code Playgroud) 我正在看以下苹果示例源代码:
/*
Cache the formatter. Normally you would use one of the date formatter styles (such as NSDateFormatterShortStyle), but here we want a specific format that excludes seconds.
*/
static NSDateFormatter *dateFormatter = nil;
if (dateFormatter == nil) {
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"h:mm a"];
}
Run Code Online (Sandbox Code Playgroud)
试图找出:
为什么要使用static关键字?
如果在每次调用方法时将其设置为nil,这相当于缓存变量.
代码来自Tableview Suite演示中的示例4
我需要用户在浏览器上录制他们的声音,然后自动将生成的mp3上传到网络服务器.
我在想用户按下一个大的开始记录/停止记录按钮来执行此操作.
然后,这将在用户硬盘上保存文件.然后它将被有效压缩并自动ftp到网站.
是否可以使用ActiveX或Java进行此操作?或者有可用的图书馆吗?
该应用程序适用于可以根据需要安装软件的用户,因此可以安装exe或其他任何软件.
任何建议都非常感谢.