标签: rust-0.8

如何在Rust中读写文本文件?

我正在Win8上使用Rust 0.8编写测试程序,我需要使用数组/矢量/列表读取和写入程序使用的一些参数来访问/从文本文件中访问各行.

在花了相当多的时间试图找到有用的东西之后,我能找到的最接近的东西如下:

use std::rt::io::{file, Open};
use std::path::Path;
use std::rt::io::file::FileInfo;

fn main () {

    let mut reader : file::FileReader = Path("xxxx.txt").open_reader(Open)  
    .expect("'xxxx.txt' could not be opened");

    println("Completed");   
}
Run Code Online (Sandbox Code Playgroud)

如果文件存在,上述"有效".

有人可以告诉我一个如何做我所说的要求的例子吗?

rust rust-0.8

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

如何从函数返回拥有的数组?

我是一个Rust新手试图通过玩它来弄清楚语言.尝试从函数返回数组时遇到了一些问题:

struct Widget {
  thingies: ~[int]
}

impl Widget {
    fn new() -> Widget {
        Widget { thingies: ~[4, 8, 15, 16, 23, 42] }
    }

    fn somethings(&self) -> ~[int] {
        self.thingies
    }
}

fn main() {
   let widget = Widget::new();
   let wotsits = widget.somethings();
}
Run Code Online (Sandbox Code Playgroud)

这当然无法使用此错误进行编译:

pointers.rs:11:8: 11:21 error: cannot move out of dereference of & pointer
pointers.rs:11         self.thingies
Run Code Online (Sandbox Code Playgroud)

如果这个代码示例看起来不合适,我所要做的就是从已实现的结构中拉出一个数组.借用的指针并不重要,它只是我试图存储数据的方式.

有关如何正确提取数组的任何提示?

顺便说一下,我正在使用Rust 0.8

arrays rust rust-0.8

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

这个Rust代码可以在没有"匹配"语句的情况下编写吗?

linuxfood为sqlite3创建了绑定,我很感激.我刚刚开始学习Rust(0.8),我正在努力理解这段代码到底在做什么:

extern mod sqlite;

fn db() {

    let database =
        match sqlite::open("test.db") {
            Ok(db) => db,
            Err(e) => {
                println(fmt!("Error opening test.db: %?", e));
                return;
            }
        };
Run Code Online (Sandbox Code Playgroud)

我基本上了解它在做什么.它试图获取数据库连接并测试错误.我不明白它是如何做到的.

为了更好地理解它,我想在没有match声明的情况下重写它,但我没有这方面的知识.那可能吗?是否sqlite::open()返回两个变量,或只有一个?

如果没有match声明,这个例子如何以不同的方式写出来 我不是说这是必要或可取的,但它可以帮助我学习语言.

sqlite rust rust-0.8

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

为什么使用Rust会将可变结构传递给不可变字段中的函数结果?

我在Win8-64上使用0.8学习Rust.我有一个测试程序,我正在处理一个处理参数输入的函数返回一个包含这些参数的结构.这很好用.然后我改变了程序以将&struct传递给函数,现在我得到一个编译器错误,我试图分配给一个不可变字段.

我应该如何传递对结构的指针/引用以防止此错误?

导致错误的代码(我尝试了一些变化):

let mut ocParams : cParams = cParams::new();     //!!!!!! This is the struct passed

fInputParams(&ocParams);               // !!!!!!! this is passing the struct

if !ocParams.tContinue {
    return;
}

.......

struct cParams {
  iInsertMax : i64,
  iUpdateMax : i64,
  iDeleteMax : i64,
  iInstanceMax : i64,
  tFirstInstance : bool,
  tCreateTables : bool,
  tContinue : bool
}

impl cParams {
  fn new() -> cParams {
     cParams {iInsertMax : -1, iUpdateMax : -1, iDeleteMax : -1, iInstanceMax : -1,
              tFirstInstance : false, tCreateTables …
Run Code Online (Sandbox Code Playgroud)

rust rust-0.8

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

标签 统计

rust ×4

rust-0.8 ×4

arrays ×1

sqlite ×1