小编quu*_*x00的帖子

如何在Rust中调用系统命令并捕获其输出?

有没有一种方法来调用系统命令,像lsfuser鲁斯特?如何捕获其输出?

rust

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

在参数化函数中复制/克隆向量的惯用Rust方法是什么?

我正在尝试编写一个参数化函数,它接受一个不可变的向量,克隆或复制它,对新的向量做一些事情(比如将其洗牌)并将其作为新拥有的向量返回.如何做到这一点以及最常用的方法是什么?

尝试#1

pub fn shuffle<T>(vec: &mut [T]) {
    // ... contents removed: it shuffles the vector in place
    // ... so needs a mutable vector
}

pub fn shuffle_create_new<T: Clone>(vec: &[T]) -> Vec<T> {
    let mut newvec = vec.clone();
    shuffle(&mut newvec);
    return newvec.to_owned();
}
Run Code Online (Sandbox Code Playgroud)

失败:

error[E0596]: cannot borrow immutable borrowed content as mutable
 --> src/main.rs:8:13
  |
8 |     shuffle(&mut newvec);
  |             ^^^^^^^^^^^ cannot borrow as mutable
Run Code Online (Sandbox Code Playgroud)

即使我宣称newvec是可变的.我不明白为什么.

尝试#2

pub fn shuffle_owned<T: Clone>(mut vec: Vec<T>) -> Vec<T> {
    shuffle(&mut …
Run Code Online (Sandbox Code Playgroud)

rust

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

在Rust中,clone()和to_owned()有什么区别?

在Rust中,Clone是一个指定clone方法(和clone_from)的特征.一些特质,比如StrSliceCloneableVector 指定一个to_ownedFN.为什么实现需要两者兼而有之?有什么不同?

我做了一个Rust字符串的实验,它有两种方法,它表明存在差异,但我不明白:

fn main() {
    test_clone();
    test_to_owned();
}

// compiles and runs fine    
fn test_clone() {
    let s1: &'static str = "I am static";
    let s2 = "I am boxed and owned".to_string();

    let c1 = s1.clone();
    let c2 = s2.clone();

    println!("{:?}", c1);
    println!("{:?}", c2);

    println!("{:?}", c1 == s1);  // prints true
    println!("{:?}", c2 == s2);  // prints true
}

fn test_to_owned() {
    let s1: &'static str = "I …
Run Code Online (Sandbox Code Playgroud)

rust

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

用于运行Java应用程序的maven的exec插件的等价物是什么?

使用maven,我可以创建一个项目,使用其依赖项设置我的pom,使用main方法编写一个类,然后运行它类型:

mvn compile exec:java -Dexec.mainClass=thornydev.App
Run Code Online (Sandbox Code Playgroud)

这样做的等价物是什么?

我可以这样做gradle build,它为我构建一个jar文件,但是如果主类对其他jar有任何依赖,那么只运行jar就不会在没有设置类路径的情况下工作.gradle java插件可以运行应用程序并为我设置类路径吗?

我正在寻找一个简单的一次性使用命令行解决方案,而不是IDE集成(我知道如何做到这一点).

gradle

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

在Rust中,如何从第三方库定义或导入C结构?

Rust FFI指南(http://static.rust-lang.org/doc/master/guide-ffi.html)很好地演示了如何导入使用由Rust std::lib库包装的标准C类型的C函数,例如size_t.但是如何将第三方库中定义的C数据结构引入Rust程序?

我正在使用libmemcached,它具有以下功能:

memcached_st* memcached_create(memcached_st *ptr)
Run Code Online (Sandbox Code Playgroud)

这通常在C程序中被调用(为了解决问题):

#include <libmemcached/memcached.h>
// ...
memcached_st *memc;
memc = memcached_create(NULL);
Run Code Online (Sandbox Code Playgroud)

memcached_st是一个不透明的C结构 - 如何在Rust程序中声明和使用它?以下是我到目前为止失败的尝试:

use std::libc::*;
use ptr;

#[link(name = "memcached")]
extern {
    struct memcached_st;  // error: unexpected token: `struct`
    memcached_st* memcached_create(memcached_st *ptr);
}

fn main() {
    unsafe {
        let memc = memcached_create(ptr:null());
        println!("{:?}", memc);
    }
}
Run Code Online (Sandbox Code Playgroud)

use std::libc::*;
use ptr;

#[link(name = "memcached")]
extern {
    // error: unexpected token: `memcached_st`
    memcached_st* memcached_create(memcached_st *ptr); …
Run Code Online (Sandbox Code Playgroud)

rust

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

mybatis 3中的集合和关联映射之间的区别

我正在从mybatis3执行mysql查询执行.我是新来的.mybatis 3中的集合和关联映射有什么区别?

具体例子如下.

SELECT e.empid AS empid,e.empname AS empname,
       e.empsalary AS empsalary,p.proname AS proname,p.proid AS proid 
FROM projects p,employees e,projectassigns pa 
WHERE pa.empid=e.empid AND pa.proid=p.proid; 
Run Code Online (Sandbox Code Playgroud)

我需要员工和项目的所有细节.

我给出了如下结果图.

<resultMap id="resultProjects" type="com.pratap.model.ProjAssigns"> 
  <association property="employee" javaType="com.pratap.model.Employee"
               resultMap="resultEmployees" />
  <association property="project" javaType="com.pratap.model.Project"     
               resultMap="resultProjects" />  
</resultMap>
Run Code Online (Sandbox Code Playgroud)

任何人都可以用我的例子或你自己的例子解释这个区别吗?

我对此感到困惑..

谢谢.

mysql associations mybatis

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

如何在Rust中导入和引用枚举类型?

如何从Rust std lib导入和引用枚举类型?

我正在尝试使用模块中的Ordering枚举std::sync::atomics.到目前为止,我的尝试都以失败告终:

use std::sync::atomics::AtomicBool;
use std::sync::atomics::Ordering;

// error unresolved import: there is no `Relaxed` in `std::sync::atomics::Ordering`
// use std::sync::atomics::Ordering::Relaxed;  

fn main() {
    let mut ab = AtomicBool::new(false);
    let val1 = ab.load(Ordering::Relaxed); // error: unresolved import:
                                           // there is no `Relaxed` in `std::sync::atomics::Ordering`
    println!("{:?}", val1);

    ab.store(true, Ordering.Relaxed);      // error: unresolved name `Ordering`
    let val2 = ab.load(Ordering(Relaxed)); // error: unresolved name `Relaxed`
    println!("{:?}", val2);    
}
Run Code Online (Sandbox Code Playgroud)

我目前正在使用Rust v.9.

rust

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

如何修复emacs 24中的javascript模式更改?

我最近从emacs 23升级到emacs 24.使用默认的js-mode使用JavaScript,我注意到emacs23与emacs24中的js-mode之间存在轻微但烦人的差异.为了确保它不是我的设置之一,我启动了emacs23和emacs24 --no-init-file选项,我看到了同样的问题,即:

在js-mode的emacs23中,当您键入一个结束大括号时},它会暂时将光标跳回到匹配开口大括号,然后将大括号缩进到适当的缩进级别.

当我在emacs24做到这一点,发生临时光标跳到与之匹配的大括号如预期,但它并没有缩进右括号,让我按下TAB键来完成这项工作.

还有其他人看到这种差异吗?如果是这样,有关如何修复它的任何想法?在我的init.el中设置某个地方是否有一个很好的"缩进 - 收尾 - 卷曲"类型的变量?

我在Xubuntu Linux上使用emacs(我从源代码安装).我还没有在其他平台上比较23和24.

注意:有人可能想建议使用Yegge的js2-mode,但我通常不喜欢使用它,并希望让js-mode正常工作.

emacs

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

如何使用 Jackson 将 JSON 解析为带有小写键的 Map?

我正在使用 Jackson (1.9.x) 库将 JSON 解析为 Map:

ObjectMapper mapper = new ObjectMapper();
Map<String,Object> map = (Map<String,Object>) mapper.readValue(jsonStr, Map.class);
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉 Jackson 解析器将所有键的名称小写?我尝试使用 Jackson PropertyNamingStrategy,但这没有用 - 它似乎只有在映射到某个 bean 而不是 Map 时才有用。

说明:

  1. 我不想为 JSON 预先创建 bean - 我只想要动态地图
  2. 传入的 JSON 键不会是小写的,但我希望所有的映射键都是小写的(请参见下面的示例)
  3. JSON 相当大且嵌套严重,因此完全不需要传入 JSON 的正则表达式替换或在 Jackson 解析后手动创建新映射。

传入的 JSON:

{"CustName":"Jimmy Smith","Result":"foo","CustNo":"1234"}
Run Code Online (Sandbox Code Playgroud)

Java 地图将具有:

"custname" => "Jimmy Smith"
"result" => "foo"
"custno" => "1234"
Run Code Online (Sandbox Code Playgroud)

[更新]:我在下面给出的答案并没有完全解决问题。仍在寻找解决方案。

java json jackson

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

Rust是否具有所有实体"继承"或实现的类型或特征?

在Java中,所有对象都继承自java.lang.Object.在Go中,所有类型/结构都实现空接口interface {}.Rust语言中是否有类似的结构?

如果答案是否定的,那是什么让它变得没必要?是因为Rust中的所有实体(模块除外)都可以按类型参数化吗?这是否消除了对所有Rust实体/结构/枚举共享的共同"超类型"或共同特征的需求?

rust

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

标签 统计

rust ×6

associations ×1

emacs ×1

gradle ×1

jackson ×1

java ×1

json ×1

mybatis ×1

mysql ×1