小编Dzi*_*inX的帖子

如何使用另一个数组扩展现有JavaScript数组,而无需创建新数组

似乎没有办法用另一个数组扩展现有的JavaScript数组,即模拟Python的extend方法.

我想实现以下目标:

>>> a = [1, 2]
[1, 2]
>>> b = [3, 4, 5]
[3, 4, 5]
>>> SOMETHING HERE
>>> a
[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

我知道有一种a.concat(b)方法,但它创建了一个新的数组,而不是简单地扩展第一个.我想要一种算法,当a它明显大于b(即不复制的算法)时,它可以有效地工作a.

注意:不是如何将某些内容附加到数组的副本 - 这里的目标是将一个数组的全部内容添加到另一个数组中,并"就地"执行,即不复制扩展数组的所有元素.

javascript arrays concatenation

899
推荐指数
11
解决办法
51万
查看次数

从Python中的文件读取字符

在文本文件中,有一个字符串"我不喜欢这个".

但是,当我把它读成字符串时,它变成了"我不喜欢这样".我明白\ u2018是"'"的unicode表示.我用

f1 = open (file1, "r")
text = f1.read()
Run Code Online (Sandbox Code Playgroud)

命令做阅读.

现在,是否有可能以这样的方式读取字符串:当它被读入字符串时,它是"我不喜欢这个",而不是像这样的"我不喜欢这样"?

第二次编辑:我看到有些人使用映射来解决这个问题,但实际上,是否没有内置转换可以将这种ANSI转换为unicode(反之亦然)转换?

python unicode encoding ascii

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

如何在Python中将文件转换为utf-8?

我需要在Python中将一堆文件转换为utf-8,而我在"转换文件"部分时遇到了麻烦.

我想做相当于:

iconv -t utf-8 $file > converted/$file # this is shell code
Run Code Online (Sandbox Code Playgroud)

谢谢!

python encoding file utf-8

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

在单页面应用中,处理错误网址的正确方法是什么(404错误)?

我目前正在使用angularjs编写一个Web应用程序,但我认为这个问题适用于在客户端进行路由的任何客户端javascript框架(如角度所做).

在单页面应用中,处理错误网址的正确方法是什么?

查看几个主要网站,如果您在https://mail.google.com/mail/下面输入任意随机网址,我会看到Gmail会重定向到收件箱.这发生在服务器端(使用http 300代码)或客户端,具体取决于错误路径是在#字符之前还是之后.另一方面,twitter显示任何无效URL的真实HTTP 404.第三种选择是显示"软"404,纯粹的客户端错误页面.

这些解决方案似乎适合不同的情况.Twitter希望Twitter用户和推文的链接是真实的链接,因此人们可以分享它们,在新闻文章中发布它们等,因此无效链接被识别是非常重要的(如果我的推文链接断开了)我的网站,一个简单的爬行会告诉我).另一方面,在gmail中,您不应该将链接分享到您的收件箱中,我甚至不确定链接是否真的是永久性/持久性的:似乎网址更新主要用于浏览器历史记录导航的目的.单页应用.给出软错误的第三种方法可能适用于类似于gmail的情况,但是没有合理的"默认"页面.

经过这么长时间的介绍,这里有一些具体的问题:

  • 提供"软"错误页面而不是404错误是否可以接受,或者如果网址无效,单页应用是否应始终重定向到真实404?
  • Gmail的代码可能完全没有错误,但如果它确实存在导致无效链接最终重定向回收件箱的错误,那么对于用户而言可能比错误页面更加混乱.对于那里的大多数网络应用程序,它们没有像gmail那样经过良好测试,显示错误页面会更好吗?
  • 要为单页面应用程序实现真正的404,似乎有必要在服务器端复制路由逻辑.有没有办法解决?
  • 当重定向到404时,我认为用户应该能够看到导致错误的URL,可能在URL栏中.使用html5历史API,我认为这可以通过简单地触发当前页面的重新加载(使用错误的URL),结合上面提到的服务器端路由来实现.对于不支持此功能或使用hashbang表示法的浏览器,这似乎不可行.支持所有浏览器的最佳方式是什么?

javascript singlepage http-status-code-404 angularjs single-page-application

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

如何从具有隔离范围的指令中公开行为?

如何从指令公开方法?我知道我应该使用数据属性,但我真的想暴露行为,而不是数据.父控制器可以调用的东西.

假设我的DOM看起来像:

<div ng-app="main">
    <div ng-controller="MyCtrl">
        <button ng-click="call()" >Call</button>
        <div id="container" my-directive> </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

angular.module("main", []).controller("MyCtrl", function($scope) {
    $scope.call = function() {
        $scope.myfn();
    };
}).directive("myDirective", function() {
    return {
        // scope: {},
        controller: function($scope) {
            $scope.myfn = function() {
                console.log("myfn called");
            }
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

jsFiddle:http://jsfiddle.net/5gDjQ/7/

如果scope被注释掉(即指令没有隔离范围),它就可以正常工作.当我按下按钮时,myfn会调用并登录到控制台.

一旦我取消注释scope,它就不起作用.myfn是在子范围上定义的,父母不容易获得.

在我的情况下,我认为污染父范围是一个坏主意,我真的想避免它.

那么,我如何将一个函数从指令暴露给父控制器?或者:如何从父控制器调用指令上的方法?

javascript angularjs angularjs-directive

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

C#的使用语句是否中止?

我刚读完"Nutshell中的C#4.0"(O'Reilly),我认为这对于愿意转向C#的程序员来说是一本好书,但它让我感到疑惑.我的问题是using声明的定义.根据这本书(第138页),

using (StreamReader reader = File.OpenText("file.txt")) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

恰好相当于:

StreamReader reader = File.OpenText("file.txt");
try {
    ...
} finally {
    if (reader != null)
        ((IDisposable)reader).Dispose();
}
Run Code Online (Sandbox Code Playgroud)

但是,假设这是真的,并且此代码在单独的线程中执行.此线程现在已中止thread.Abort(),因此ThreadAbortException抛出a并假设线程正好在初始化读取器之后和输入try..finally子句之前.这意味着读者不会被处置!

一种可能的解决方案是以这种方式编码:

StreamReader reader = null;
try {
    reader = File.OpenText("file.txt");
    ...
} finally {
    if (reader != null)
        ((IDisposable)reader).Dispose();
}
Run Code Online (Sandbox Code Playgroud)

这将是中止安全的.

现在我的问题:

  1. 这本书的作者是否正确,using声明是不是中止安全还是错误,它的行为与我的第二个解决方案相似?
  2. 如果using等同于第一方案(不放弃安全的),为什么它检查nullfinally
  3. 根据该书(第856页),ThreadAbortException可以在托管代码中的任何位置抛出.但也许有例外,第一个变种毕竟是中止安全的?

编辑:我知道使用thread.Abort()不被认为是好习惯.我的兴趣是纯粹的理论:如何在using声明中表现究竟

c# multithreading using-statement thread-safety abort

28
推荐指数
3
解决办法
3224
查看次数

如何检查操作系统是否是Python中的Vista?

如何以最简单的方式区分Windows XP和Windows Vista,使用Python和pywin32wxPython

基本上,如果当前操作系统是Vista,我需要一个被调用的函数返回True:

>>> isWindowsVista()
True
Run Code Online (Sandbox Code Playgroud)

python windows wxpython pywin32 windows-vista

25
推荐指数
3
解决办法
2万
查看次数

从pylint中理解"太多的祖先"

example.py:

'''
demo too many ancestors 
'''
from flask_security.forms import RegisterForm
from wtforms.fields import TextField

class ExtendedRegisterForm(RegisterForm):
    '''An extended register form'''
    name = TextField('Name', [])
Run Code Online (Sandbox Code Playgroud)

当我运行pylint时:

$ pylint -r n example.py
************* Module example
R:  7, 0: Too many ancestors (10/7) (too-many-ancestors)
Run Code Online (Sandbox Code Playgroud)

这是什么意思,我该如何解决?

python pylint

21
推荐指数
3
解决办法
8520
查看次数

AngularUI路由器:具有相同url模式的多个状态

嘿所有我遇到什么,我认为将是一个常见的路由问题,但我无法找出一个解决方案.基本上我的页面有两种状态,基本和高级,我希望两种状态的URL模式相同,但只加载当前状态的模板(从控制器内转换到)

config(function ($stateProvider) {

  $stateProvider.state('basic', {
    url: '/:post',
    templateUrl: function (stateParams) {
      return 'post-' + stateParams.post + '-tmpl.html';
    }
  });

  $stateProvider.state('advanced', {
    url: '/:post',
    templateUrl: function (stateParams) {
      return 'post-' + stateParams.post + '-advanced-tmpl.html';
    }
  });
})

controller('myCtrl', function ($state) {
  //
  // In this case, I would expect only the template from
  // the advanced state to load, but both templates are trying
  // to load.
  $state.transitionTo('advanced', {post: 2});
}
Run Code Online (Sandbox Code Playgroud)

我假设导航到匹配的模式会加载给定的状态,这就是为什么当它匹配时,两个模板都会尝试加载.有没有办法完成相同的网址模式,但只使用基于当前状态的不同模板?

javascript angularjs angular-ui-router

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

在mysql中选择名称中包含空格的数据库

我想在mysql控制台中选择我的特定数据库,但问题是我的数据库名称之间有空格而mysql忽略空格后的部分.例如,当我发出命令时:

use 'student registration'
Run Code Online (Sandbox Code Playgroud)

我收到消息:

cannot find database 'student'
Run Code Online (Sandbox Code Playgroud)

mysql database console spaces

12
推荐指数
2
解决办法
3万
查看次数