我非常喜欢这个提示:"针对接口的程序,而不是实现",我试图始终如一地遵循它.但是,当我不得不将代码与必须从多个接口继承的对象分离时,我怀疑如何保持这个原则.典型的例子可能是:
namespace ProgramAgainstInterfaces
{
interface IMean
{
void foo();
}
class Meaning : IMean , IDisposable
{
public void Dispose()
{
Console .WriteLine("Disposing..." );
}
public void foo()
{
Console .WriteLine("Doing something..." );
}
}
class DoingSomething
{
static void Main( string[] args)
{
IMean ThisMeaning = (IMean ) new Meaning (); // Here the issue: I am losing the IDisposable methods
ThisMeaning.foo();
ThisMeaning.Dispose(); // Error: i cannot call this method losing functionality
}
}
}
Run Code Online (Sandbox Code Playgroud)
解决此问题的一种可能方法是定义从两个接口继承的ad-hoc接口:
namespace …Run Code Online (Sandbox Code Playgroud) 据我所知,递归非常优雅,但在OOP和程序编程方面效率不高(参见精彩的"High Order perl",Mark Jason Dominus).我有一些信息,在函数式编程递归中很快 - 保持其优雅和简洁.有人可以确认并可能放大这个吗?我正在考虑XSLT和Haskell(我的下一个语言学习列表的高位)
谢谢
丹尼尔
xslt optimization haskell functional-programming tail-recursion
我无法理解为什么我无法从服务器答案中获得正确的ISO-8859-1 charstet.作为遗留代码的工作,我几乎不能改变页面上的字符集编码.
我使用了JQuery调用
$.post("server-side-code", {t:ctext, i:ioff, sid:sessionid},
function(data, status) {
$('#chk').append(data);
});
Run Code Online (Sandbox Code Playgroud)
发布使用javascript创建的textarea值:
<form accept-charset='ISO-8859-1' method='post'>
<textarea cols='40' rows='8' id='commento'></textarea><br>
<input type='button' value='invia' id='submit'></form>
Run Code Online (Sandbox Code Playgroud)
处理请求的服务器端脚本在其顶部声明:
text/html; charset=ISO-8859-1
Run Code Online (Sandbox Code Playgroud)
所以,老实说,我无法弄清楚我应该在编码方面声明什么.尽管如此,当将服务器答案放在HTML元素中时,重音字符"àèéìòù"会反弹为:"ÃÃÃÃ"ÃÃÃ"Ã"
源保存为ascii.尝试执行此操作以对要发布的变量进行基本的Html编码无法解决:
ctext = escapeHTML(ctext);
function escapeHTML (str)
{
var div = document.createElement('div');
var text = document.createTextNode(str);
div.appendChild(text);
return div.innerHTML;
};
Run Code Online (Sandbox Code Playgroud)
有些想法?
谢谢!
为什么这个代码:
var a = new Date();
var b = new Date();
a.setDate(31);
a.setMonth(11);
a.setFullYear(2009);
b.setFullYear(2009);
b.setMonth(11);
b.setDate(31);
Run Code Online (Sandbox Code Playgroud)
2009年12月31日b和2009年12月3日正确输出:-O表示?不在浏览器MyHorribleScrap版本6.6.6中,但在FF 3.6和IE 8.06.6001上
我收到一个我不明白的错误.我正在使用File:Find使用Activestate Perl 5.8.8在Windows上递归fylesystem并尝试stat $File::Find::name; 所以我不是 - stat从文本文件扫描得到的文件名需要chomp-ing或换行删除.我无法获得文件修改时间,mtime在:
my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat($File::Find::name);
Run Code Online (Sandbox Code Playgroud)
所以试试
-s $File::Find::name
Run Code Online (Sandbox Code Playgroud)
给我错误:
包含换行符的文件名不成功
找到的典型文件名是F01-01-10 Num 0-00000.pdf,但即使在E02中重命名也会出现相同的错误.pdf
在Windows 32位平台上,我必须阅读一些数字,这是意料之外的,可以有99,999,999,999的值,但不多.尝试sprintf("%011d", $myNum)输出溢出:-2147483648.
我无法使用BigInt模块,因为在这种情况下我应该深入更改代码.我无法将格式管理为字符串sprintf("%011s", $numero),因为减号处理不正确.
我该怎么办呢?打包/打包可以提供一些帮助吗?
我正在尝试学习XSLT.我只是变得疯狂.变量应该在xsl:variables实体中声明,并且实例化它们的名称前面有$符号(比如perl变量),对吧?为什么这个代码:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:variable name="color" select="'red'" />
<p>$color</p>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
结果是文字字符串:"$ color"是使用msxsl解析器编写解析一个简单的非空xml文档?非常感谢
怎么可能,'colonna'是一个简单的字符串:
$('td.' + colonna).css('background-color','#ffddaa');
Run Code Online (Sandbox Code Playgroud)
正确地突出了有趣单元格的背景,并且:
$('td.' + colonna).contains('Catia').css('background-color','#ffddaa');
Run Code Online (Sandbox Code Playgroud)
产生错误:"$('td.'+ colonna).contains不是函数"?
有人有想法吗?
谢谢!
我发现在尝试学习Jquery时要完全理解回调范围有一些问题.我想补充一点,我对Javascript语言的经验很少代码:
var globDom; // placeholder for DOM fragment
// Getting xml file; jquery parses the file and give me back a DOM fragment
// saveXML is the callback
$.get(requestTarget, {}, saveXML);
// the globDom here is UNDEFINED !
alert(globDom);
// the callback
function saveXML(xmlDom)
{
globDom = xmlDom;
}
Run Code Online (Sandbox Code Playgroud)
我相信在这里我有一个很大的误解......
有什么建议吗?
谢谢
丹尼尔
啊啊.非常清楚,我完全理解我的假设中的错误:我忘记考虑到数据访问时间(之前的!)和内容可用时间之间的时间间隔.一个相当严重的缺陷 - 批量编程有偏见:-(问题很明显,我现在可以正确解决它.很多,非常感谢您的回应!
在Windows服务器上使用perl 5.8.8我正在编写一个perl cgi脚本,使用Archive :: Zip来创建一个必须由用户下载的zip:这方面没有问题.zip在内存中管理,没有物理文件使用临时文件或其他任何内容写入磁盘.我想知道如何允许zip下载将流写入浏览器.我做的是这样的:
binmode (STDOUT);
$zip->writeToFileHandle(*STDOUT, 0);
Run Code Online (Sandbox Code Playgroud)
但我觉得这种方式不安全,将STDOUT作为文件句柄.它是否正确且稳健?有一个更好的方法?
非常感谢您的建议
jquery ×3
perl ×3
javascript ×2
xslt ×2
bignum ×1
c# ×1
filehandle ×1
haskell ×1
oop ×1
optimization ×1
printf ×1
windows ×1