小编Lev*_*ans的帖子

手动调用一个生锈的动态库

我正在玩弄DynamicLibrary.

我的动态库的代码(编译rustc --crate-type dylib dylib.rs):

// dylib.rs
#[no_mangle]
pub fn minicall() -> u8 {
    3u8
}
Run Code Online (Sandbox Code Playgroud)

以及调用它的代码:

// caller.rs
use std::dynamic_lib::DynamicLibrary;

fn main() {
    let mut v = Vec::new();

    DynamicLibrary::prepend_search_path(&::std::os::getcwd());

    match DynamicLibrary::open(Some("./libdylib.so")) {
        Err(e) => panic!("ERROR: {}", e),
        Ok(lib) => {
            println!("Unsafe bloc !");
            let func = unsafe {
                match lib.symbol::< fn() -> u8 >("minicall") {
                        Err(e) => { panic!("ERROR: {}", e) },
                        Ok(f) => { *f },
                }
            };
            println!("call func !");
            let new_value = …
Run Code Online (Sandbox Code Playgroud)

dynamic-library rust

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

函数数组的类型中`fn`和`||`之间的差异

我在Rust中做了一些简单的实验,涉及一系列函数,最后推出了这个工作代码:

fn fun1(arg: &String) -> String {
    let prefix = String::from_str("a: ");
    prefix.add(arg)
}

fn fun2(arg: &String) -> String {
    let prefix = String::from_str("b: ");
    prefix.add(arg)
}

fn doall(arg: &String, funcs_vec: &[fn(&String) -> String]) {
    for f in funcs_vec.iter() {
        println!("{}", (*f)(arg));
    }
}

static funcs: &'static [fn(&String) -> String] = &[fun1, fun2];

fn main() {
    doall(&String::from_str("foo"), funcs);
}
Run Code Online (Sandbox Code Playgroud)

打印:

a: foo
b: foo
Run Code Online (Sandbox Code Playgroud)

然后,在SO上阅读其他一些问题,我看到了|&String| -> String应该也能正常工作的语法,但是尝试这样:

fn doall(arg: &String, funcs_vec: &[|&String| -> String]) …
Run Code Online (Sandbox Code Playgroud)

rust

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

使用自定义管理器使用django创建对象的目的?

我在Django文档中看到:

模型实例参考:创建对象

您可能想通过覆盖__init__方法来自定义模型.但是,如果这样做,请注意不要更改调用签名,因为任何更改都可能阻止保存模型实例.
而不是覆盖__init__,尝试使用以下方法之一:

  • 在模型类上添加classmethod.
  • 在自定义管理器上添加方法(通常是首选)

为什么第二种解决方案"通常是首选"?

在我有一个通过关系B扩展模型的模型的情况下,我想创建一个生成一个生成相应对象的对象的方法,如何使用自定义管理器"更好"给定我除了默认管理器提供的内容之外,可能不会使用此管理器吗?AOneToOneBA

django django-managers

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

虚拟重载vs`std :: function`成员?

我正处于一个班级,让我们称之为班级Generic.这个类有成员和属性,我打算在一个std::vector<Generic>或类似的地方使用它,处理这个类的几个实例.

此外,我想专门化这个类,泛型和专用对象之间的唯一区别是私有方法,它不访问类的任何成员(但由其他方法调用).我的第一个想法是简单地声明它virtual并在专门的类中重载它,如下所示:

class Generic
{
    // all other members and attributes
    private:
        virtual float specialFunc(float x) const =0;
};

class Specialized_one : public Generic
{
    private:
        virtual float specialFunc(float x) const{ return x;}
};

class Specialized_two : public Generic
{
    private:
        virtual float specialFunc(float x) const{ return 2*x; }
}
Run Code Online (Sandbox Code Playgroud)

因此我想我必须使用a std::vector<Generic*>,并动态创建和销毁对象.

一位朋友建议我std::function<>为我的Generic类使用一个属性,并将其specialFunc作为参数提供给构造函数,但我不确定如何正确地执行它.

这两种方法的优点和缺点是什么,还有其他(更好的)方法来做同样的事情吗?我很好奇.

有关详细信息,我实例化的每个对象的特化将在运行时确定,具体取决于用户输入.我可能最终会得到很多这些对象(还不确定有多少),所以我想避免任何不必要的开销.

c++ c++11

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

如何用夜间Rust解析浮子?

我不知道如何从当前的Rust解析浮点数,根据我认为应该工作的文档:

use std::f32;
use std::from_str::FromStr;

fn main() {
    let result = f32::from_str("3.14");
    println!("{}", result.unwrap());
}
Run Code Online (Sandbox Code Playgroud)

但编译器抱怨:

<anon>:5:18: 5:31 error: unresolved name `f32::from_str`.
<anon>:5     let result = f32::from_str("3.14");
                          ^~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

(参见Rust围栏:这里)

我在这里缺少什么?

rust

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

Postgres + Play 2.2.1 Java - 找不到驱动程序:[org.postgresql.Driver]

我正在尝试将样本'computer-database-jpa'连接到postgres,但我不能. https://github.com/playframework/playframework/tree/master/samples/java/computer-database-jpa 你能帮帮我吗?

我的步骤:

  1. 添加jar(构建路径>配置构建路径>添加外部jar ...)
  2. 添加到build.sbt:"postgresql"%"postgresql"%"9.3-1100.jdbc4"
  3. 添加到application.conf:

    db.default.driver=org.postgresql.Driver
    
    db.default.url=" jdbc:postgresql://localhost:5432/teste "
    
    db.default.user="postgres"
    
    db.default.password="postgre"
    
    Run Code Online (Sandbox Code Playgroud)

结果: 浏览器消息:找不到驱动程序:[org.postgresql.Driver]

问题出在哪儿 ?

postgresql playframework playframework-2.2

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

拥有:装修前不属于链接的一部分

我正在建立一个链接列表:

<ul>
    <li><a href="#">link</a></li>
    <li><a href="#">link</a></li>
    <li><a href="#">link</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

希望它们显示为链接栏我添加CSS:

li { display: inline-block; }
Run Code Online (Sandbox Code Playgroud)

然后,我想使用CSS在链接之间添加一个小内容,所以:

li :before { content: "+"; }
Run Code Online (Sandbox Code Playgroud)

这就是问题所在,+它集成在<a>里面了<li>.

为什么会这样?我正在使用li:before,不是a:before!
我该怎样预防呢?

这是一个JSFiddle显示它:http://jsfiddle.net/KY58h/

html css

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