小编Dan*_*iel的帖子

针对多个接口编程

我非常喜欢这个提示:"针对接口的程序,而不是实现",我试图始终如一地遵循它.但是,当我不得不将代码与必须从多个接口继承的对象分离时,我怀疑如何保持这个原则.典型的例子可能是:

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)

c# oop

27
推荐指数
4
解决办法
1454
查看次数

函数式编程中的有效递归与不同范式中的低效递归

据我所知,递归非常优雅,但在OOP和程序编程方面效率不高(参见精彩的"High Order perl",Mark Jason Dominus).我有一些信息,在函数式编程递归中很快 - 保持其优雅和简洁.有人可以确认并可能放大这个吗?我正在考虑XSLT和Haskell(我的下一个语言学习列表的高位)

谢谢

丹尼尔

xslt optimization haskell functional-programming tail-recursion

17
推荐指数
3
解决办法
2790
查看次数

Jquery:ajax发布和编码

我无法理解为什么我无法从服务器答案中获得正确的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)

有些想法?

谢谢!

jquery

9
推荐指数
1
解决办法
6万
查看次数

Javascript:日期取决于字段规范顺序?真?

为什么这个代码:

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上

javascript

9
推荐指数
1
解决办法
220
查看次数

为什么Perl抱怨"包含换行符的文件名不成功"?

我收到一个我不明白的错误.我正在使用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 perl

4
推荐指数
1
解决办法
1万
查看次数

我怎样才能在Perl中使用大字符?

在Windows 32位平台上,我必须阅读一些数字,这是意料之外的,可以有99,999,999,999的值,但不多.尝试sprintf("%011d", $myNum)输出溢出:-2147483648.

我无法使用BigInt模块,因为在这种情况下我应该深入更改代码.我无法将格式管理为字符串sprintf("%011s", $numero),因为减号处理不正确.

我该怎么办呢?打包/打包可以提供一些帮助吗?

perl printf bignum

3
推荐指数
1
解决办法
6261
查看次数

我如何使用XSLT变量的值?

我正在尝试学习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文档?非常感谢

xslt

2
推荐指数
2
解决办法
668
查看次数

jquery错误:函数不是函数?

怎么可能,'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

1
推荐指数
1
解决办法
1743
查看次数

回调和范围

我发现在尝试学习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)

我相信在这里我有一个很大的误解......

有什么建议吗?

谢谢

丹尼尔


啊啊.非常清楚,我完全理解我的假设中的错误:我忘记考虑到数据访问时间(之前的!)和内容可用时间之间的时间间隔.一个相当严重的缺陷 - 批量编程有偏见:-(问题很明显,我现在可以正确解决它.很多,非常感谢您的回应!

javascript jquery

0
推荐指数
1
解决办法
633
查看次数

Perl:获取在cgi-bin脚本中使用stdin的句柄

在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作为文件句柄.它是否正确且稳健?有一个更好的方法?

非常感谢您的建议

perl filehandle

0
推荐指数
1
解决办法
583
查看次数