小编Mic*_*oka的帖子

在条件语句中执行函数被认为是不好的形式吗?

考虑一种情况,你需要调用连续的例程,并在返回一个可以被评估为正值的值时停止(true,object,1,str(1)).

这样做非常诱人:

if (fruit = getOrange())
elseif (fruit = getApple())
elseif (fruit = getMango())
else fruit = new Banana();

return fruit;
Run Code Online (Sandbox Code Playgroud)

我喜欢它,但这不是一个非常经常的风格,可以被认为是专业的生产代码.人们可能更愿意看到更精细的代码,如:

fruit = getOrange();
if(!fruit){
    fruit = getApple();
    if(!fruit){
        fruit = getMango();
        if(!fruit){
            fruit = new Banana();
        }
    }
}

return fruit;
Run Code Online (Sandbox Code Playgroud)

根据基本结构的教条,以前的形式是否可以接受?你会推荐吗?

编辑:

我向那些认为这些功能是工厂或建造者的人道歉.他们不是,他们只是占位符.问题更多的是语法而不是"工厂化".这些功能也可以是lambda.

language-agnostic if-statement

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

JQuery中的"<script defer>"hack发生了什么?

几年前Dean Edwards将这个解决方法带给了document.onload问题.IE版本的解决方案涉及将此代码段附加到文档:

<script defer src=ie_onload.js><\/script>;
Run Code Online (Sandbox Code Playgroud)

Dean也非常坚定地认为,这是他能找到的最完美的解决方案,并且驳回了任何涉及onreadystatechange属性不可靠的解决方案(见评论).

对他的解决方案的后续改进仍然涉及一些版本的<script defer>,并且大多数JS框架实现了它,包括jQuery.

今天,我正在阅读JQuery 1.4.1的源码,我找不到它.

它落在哪一点,为什么?

javascript jquery javascript-events

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

你如何建立一个torrent文件索引器?

我对像torrentz.com这样的搜索引擎背后的技术感到好奇.根据我的观察,它不会托管任何torrent文件,而是将您连接到其他服务器.

  • 您搜索关键字,它会显示与您的搜索匹配的潜在标题列表.
  • 然后你选择其中一个,它为你提供托管相应的torrent文件的潜在服务器的另一个列表.

我特别感兴趣的是收集和索引所有内容背后的策略:

他们如何收集然后汇总数据?
它是一个提交基础服务,其中每个服务器都提交其内容以进行索引吗?
它是一种爬行算法吗?如果是这样,你怎么开始爬网像piratebay.org?
他们是否可以访问这些其他服务器的数据库?

我对bittorrent协议的了解和理解不是很精细,但我在网上找到的文档更多地指向了构建跟踪服务所涉及的过程,这不是我感兴趣的.任何见解和推荐的阅读材料表示赞赏.

bittorrent search-engine

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

REST:http代码300在这种重定向情况下是否合适?

我有一个多语言环境的网站.我需要在用户访问站点时将用户重定向到他们的语言环境而不使用url中的语言环境代码.

例如

http://www.mysite.com会 自动重定向到http://www.mysite.com/ukhttp://www.mysite.com/us

我正在看rfc2616而且我在使用Code 300(多种选择)时犹豫不决:

所请求的资源对应于一组表示中的任何一个,每个表示具有其自己的特定位置,并且正在提供代理驱动的协商信息(部分12),以便用户(或用户代理)可以选择优选表示并重定向其请求到该位置.

除非是HEAD请求,否则响应应该包括一个实体,其中包含资源特征和位置列表,用户或用户代理可以从中选择最合适的资源特征和位置.实体格式由Content-Type头字段中给出的媒体类型指定.

根据用户代理的格式和功能,可以自动选择最合适的选择.但是,该规范没有为这种自动选择定义任何标准.

如果服务器具有首选的表示选择,则它应该在Location字段中包含该表示的特定URI;

我想我理解,但措辞仍然让我有点神秘.熟悉响应代码的人是否可以确认我是否在正确的轨道上并解释以下摘录?

  • [...]正在提供[...]代理商驱动的谈判信息[...]
  • 除非是HEAD请求,否则响应应该包括一个包含资源特征和位置列表的实体[...]
  • rest http-status-codes

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

    正则表达式:如何匹配重叠模式(可能是Python特定的)

    我有一个看起来像这样的字符串:"XaXbXcX".我想要匹配任何一边用X包围的任何小写字母.我在Python中试过这个,但是我找不到我想要的东西:

    import re
    str = "XaXbXcX"
    pattern = r'X([a-z])X'
    matches = re.findall(pattern, str) # gives me ['a', 'c']. What about b?
    
    Run Code Online (Sandbox Code Playgroud)

    python regex

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

    让一元运算符与 Python 类一起使用

    代码:

    >>> class Negative: 
    ...      pass
    
    >>> class Positive:
    ...    @classmethod
    ...    def __neg__(cls):
    ...        return Negative
    
    Run Code Online (Sandbox Code Playgroud)

    所以我尝试

    >>> -Positive is Negative
    TypeError: bad operand type for unary -: 'type'
    
    Run Code Online (Sandbox Code Playgroud)

    这虽然有效

    >>> -Positive() is Negative
    True
    
    Run Code Online (Sandbox Code Playgroud)

    ~其他一元运算符及其相关的“魔术”方法(例如and __invert__+and__pos__等)也是如此。

    为什么它适用于实例而不适用于类?我怎样才能让它发挥作用?

    编辑:我已经按照建议修改了代码,以在元类中移动魔术方法。

    class Negative: pass
    
    class PositiveMeta(type):
        def __neg__(cls):
            return Negative
    
    class Positive(metaclass=PositiveMeta): pass
    
    Run Code Online (Sandbox Code Playgroud)

    python metaclass

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

    关于PHP include语句的问题

    我正在浏览Zend_View源代码,我看到了这个:

    include 'zend.view://' . func_get_arg(0);
    
    Run Code Online (Sandbox Code Playgroud)

    字符串" zend.view://"表示什么以及include语句如何在php中解析?

    php stream include include-path

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

    为什么我在Python解释器中得到一个SyntaxError?

    当我从.py文件中尝试此代码时,此代码有效,但在命令行解释器和空闲时失败.

    >>> try:
    ...     fsock = open("/bla")
    ... except IOError:
    ...     print "Caught"
    ... print "continue"
      File "<stdin>", line 5
        print "continue"
            ^
    SyntaxError: invalid syntax
    
    Run Code Online (Sandbox Code Playgroud)

    我正在使用python 2.6

    python syntax-error

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

    需要一些帮助来理解奇怪的C行为

    这部分代码运行正常:

    #include <stdio.h>
    
    int main(){
        //char somestring[3] = "abc";
        int i, j; 
        int count = 5;
    
        for((i=0) && (j=0); count > 0; i++ && j++){
            printf("i = %d  and j = %d\n", i, j);
            count--;
        }
    
        return 0;
    }
    
    Run Code Online (Sandbox Code Playgroud)

    输出如预期:

    i : 0 and j : 0
    i : 1 and j : 1
    i : 2 and j : 2
    i : 3 and j : 3
    i : 4 and j : 4
    
    Run Code Online (Sandbox Code Playgroud)

    当我在函数体的第一行取消注释char字符串声明时,事情变得奇怪了.

    #include <stdio.h>
    
    int main(){ …
    Run Code Online (Sandbox Code Playgroud)

    c

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

    javascript:(ä=#1 = {} && alert)(ä)

    在这里找到http://sla.ckers.org/forum/read.php?2,15812,page=2

    如果您复制问题的标题并在浏览器中运行它,您应该看到它正在警告函数的字符串表示形式.

    function alert() {
        [native code]
    
    }
    
    Run Code Online (Sandbox Code Playgroud)

    有人可以慢慢解释发生了什么吗?

    javascript

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