小编Wil*_*hes的帖子

正则表达式中的 * 和 .* 有什么区别?

*我看到在某些命令中使用了通配符,例如: find *.jpg,这意味着查找任何以.jpg. 然而,在正则表达式中,.*也意味着任意字符出现 0 次或多次。那么,它们之间有什么区别呢?什么时候*用过,什么时候用.*

regex glob wildcard

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

你有没有将(MyClass,self)以外的任何东西传递给super()?

我知道在Python 3中,你可以编写super()并且Python自动传递正确的参数super.

也可能通过意外写入来引入细微的错误super(Parent, self).

是否有任何情况下您希望将当前类作为第一个参数传递给super

python inheritance

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

使用node-soap客户端通过代理调用SOAP API

我正在使用node-soap模块,它工作正常,除非我在代理后面工作.我无法找到设置该代理的方法,因此我可以请求API.

soap.createClient(url, function(err, client) {
      client.MyFunction(args, function(err, result) {
          console.log(result);
      });
});
Run Code Online (Sandbox Code Playgroud)

它写在文档中:

The options argument allows you to customize the client with the following properties:

request: to override the request module.
httpClient: to provide your own http client that implements request(rurl, data, callback, exheaders, exoptions).
Run Code Online (Sandbox Code Playgroud)

这是要走的路吗?

soap soap-client node.js node-soap

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

与 Rc<RefCell<T>> 匹配

考虑以下代码 - 它可以编译并工作:

use std::rc::Rc;
use std::cell::RefCell;
use crate::Foo::{Something, Nothing};

enum Foo {
    Nothing,
    Something(i32),
}

fn main() {
    let wrapped = Rc::new(RefCell::new(Foo::Nothing));
    //....

    match *wrapped.borrow() {
        Something(x) => println!("{}", x),
        Nothing => println!("Nothing"),
    };        
}
Run Code Online (Sandbox Code Playgroud)

现在我想匹配两个包装的值而不是一个:

use std::rc::Rc;
use std::cell::RefCell;
use crate::Foo::{Something, Nothing};

enum Foo {
    Nothing,
    Something(i32),
}

fn main() {
    let wrapped1 = Rc::new(RefCell::new(Foo::Nothing));
    let wrapped2 = Rc::new(RefCell::new(Foo::Nothing));
    //....

    match (*wrapped1.borrow(), *wrapped2.borrow()) {
        (Something(x), Something(y)) => println!("{}, {}", x, y),
        _ => println!("Nothing"),
    };        
}
Run Code Online (Sandbox Code Playgroud)

现在这将给出编译错误:

use …
Run Code Online (Sandbox Code Playgroud)

pattern-matching ownership rust

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

jQuery的.live()忽略了事件

给出以下HTML代码段:

    Goggles <input type="checkbox" id="id_goggles_opt_in" name="goggles_opt_in">
    Approved <input type="checkbox" id="id_approved" name="approved">
Run Code Online (Sandbox Code Playgroud)

这个JavaScript:

$('#id_approved').live('click', function() {
    alert('click is fine when selected by ID');
});

var $formInputs = $('.form input[type=text], .form input:file, .form textarea, .form select, .form input[type=checkbox]');

var $checkboxes = $formInputs.filter('[type=checkbox]');
console.log("This selector actually finds the elements: " + $checkboxes.size());
console.log($checkboxes)

$checkboxes.live('click', function() {
    alert('bizarrely this is never called');
});
Run Code Online (Sandbox Code Playgroud)

永远不会解雇第二个警报.#jquery常客建议我使用.delegate,但为什么这不起作用?

关于JSFiddle的例子:http://jsfiddle.net/amA3h/

javascript jquery

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

对于Emacs,如何存储哪些视图丢失收集到外部文件中?

对于Emacs,如何存储view-lossage收集到外部文件中的内容?理想情况下,我希望以增量和自动方式将这些击键数据存储到外部日志文件中,这意味着在启动Emacs时默认情况下会这样做.

emacs elisp keylogger

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

保持指向前一个循环值的指针?

我正在尝试迭代一个向量,保留上一次迭代的值的副本.令我惊讶的是,我的prev指针最终指向循环的当前值.

#include <iostream>
#include <vector>

int main() {
    std::vector<std::string> v;
    v.push_back("one");
    v.push_back("two");
    v.push_back("three");

    std::string *prev = nullptr;
    for (std::string s : v) {
        std::cout << "s: " << s << std::endl;
        if (prev == nullptr) {
            std::cout << "prev: (null)" << std::endl << std::endl;
        } else {
            std::cout << "prev: " << *prev << std::endl << std::endl;
        }
        prev = &s;
    }

    std::cout << "final prev: " << *prev << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

s: one
prev: (null)

s: …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

为什么stdout重定向适用于puts而不是write?

如果我使用puts,我可以按预期重定向stdout:

#include <stdio.h>

int main() {
    char *s = "hello world";
    puts(s);    
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

重定向:

$ gcc -Wall use_puts.c
$ ./a.out
hello world
$ ./a.out > /dev/null
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用write写入stdout,shell重定向无效:

#include <stdio.h>
#include <string.h>
#include <unistd.h>

int main() {
    char *s = "hello world\n";
    write(0, s, strlen(s));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

重定向:

$ gcc -Wall use_puts.c
$ ./a.out
hello world
$ ./a.out > /dev/null
hello world
Run Code Online (Sandbox Code Playgroud)

为什么是这样?在这种情况下,如何将写入重定向到stdout?

c unix io-redirection

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

如何在golang中定义动态"类型结构"?

这是Playground链接https://play.golang.org/p/qMKxqrOcc2.问题类似于Playground上的问题.

假设我有条件,需要这样做:

if modelName == "a"{
    model = models.A
} 
else{
    model = models.B
}
Run Code Online (Sandbox Code Playgroud)

在那里AB一些型号:

type A struct{
    filed1 string
    field2 string
    //etc

}
Run Code Online (Sandbox Code Playgroud)

和模型B

type B struct{
    filed1 string
    field2 string
    //etc

}
Run Code Online (Sandbox Code Playgroud)

字段在AB有一些相同的字段,但大多数它们反映数据库表(文档),它们是相同的类型(类型结构).

当我在所有的面前说:

var model interface{}
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

type models.A is not an expression 
Run Code Online (Sandbox Code Playgroud)

如果你问为什么,我这样做是为了避免代码中的代码冗余.

问题类似于:如何在Golang中返回动态类型结构?

这是代码的更新:

b := c.mainHelper.GetModelBy("id", id, modelName).(map[string]interface{})
mapstructure.Decode(b, &model)

if modelName == "a"{
    model.Photos = []string{"ph1","ph2"}
}
if modelName …
Run Code Online (Sandbox Code Playgroud)

go

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

将Docker的TLS选项设置为环境变量

我已经使用证书运行了本地docker守护进程,并且可以使用非常长的缠绕命令来列出所有正在运行的容器,例如

docker --tlsverify --tlscacert=/path/ca.cer --tlscert=/path/client.cert --tlskey=/path/client.key -H=localhost:2376 ps
Run Code Online (Sandbox Code Playgroud)

但是,当我跑docker ps我得到一个bad certificate错误,因为从上面的命令的各种TLS选项不传递给搬运工。我花了几个小时浏览docker网站,找不到如何设置它们的任何选项。

我已经设置好了DOCKER_CERT_PATH,但是似乎没有用。
是否有一个DOCKER_CACERT环境变量,如果码头工人会读--tlscacert未指定?

environment-variables docker

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