我正在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新手试图通过玩它来弄清楚语言.尝试从函数返回数组时遇到了一些问题:
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
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声明,这个例子如何以不同的方式写出来 我不是说这是必要或可取的,但它可以帮助我学习语言.
我在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)