小编cha*_*man的帖子

如何将数组传递给Rust中的函数并更改其内容?

我想将一个数组传递给一个函数并更改其中的内容.我怎么能这样做,这是我下面的代码,但当然它不起作用.

fn change_value(mut arr: &[i32]) {
    arr[1] = 10;
}

fn main() {
    let mut arr: [int; 4] = [1, 2, 3, 4];
    change_value(&arr);
    println!("this is {}", arr[1]);
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:"无法分配给不可变的vec内容__CODE__".

我一直在寻找,但作为一个漂亮的新手Rust程序员,我找不到任何东西.另外,Rust对其语言进行了大量修改并没有帮助,因此很多方法都被弃用或删除了.

arrays rust

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

Windows上的gcc:生成的"a.exe"文件消失

我正在使用GCC版本4.7.1,但我也在GCC 4.8上尝试过这个.这是我正在尝试编译的代码:

#include <stdio.h>

void print(int amount) {
    int i;
    for (i = 0; i < 5; i++) {
        printf("%d", i);
    }
}

int main(int argc, char** argv) {
    print(5);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它看起来应该工作,当我编译时......

gcc main.c
Run Code Online (Sandbox Code Playgroud)

编译需要一段时间,生成一个a.exe文件,a.exe文件就会消失.我的代码没有给我任何错误.

这是一个证据的GIF,因为有些人误解了这个: 证明

c windows gcc

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

Go - 迭代当前目录中的目录/文件

我有以下结构:

project/
    docs/
        index.html
    root.html
Run Code Online (Sandbox Code Playgroud)

我正在尝试迭代这个项目结构,以便我可以读取每个文件的内容来处理它们。所以我想说“搜索目录项目”,那么它将搜索所有文件,并且仅搜索第一级目录及其文件,因此如果存在另一个目录中包含文件docs/,它将忽略它。

目前,我尝试使用“path/filepath”库来完成此任务:

func traverse(path string, file os.FileInfo, err error) error {
    if file, err := os.Open(file.Name()); err == nil {
        defer file.Close()
        if fileStat, err := file.Stat(); err == nil {
            switch mode := fileStat.Mode(); {
            case mode.IsDir():
                fmt.Println("it be a directory! lets traverse", file.Name())
                filepath.Walk(file.Name(), traverse)
            case mode.IsRegular():
                fmt.Println("the thingy ", file.Name(), " is a file")
            }
        } else {
            return errors.New("failed to check status")
        }
    }
    return errors.New("failed 2 …
Run Code Online (Sandbox Code Playgroud)

directory go

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

转换为另一种语言

代码可以转换的典型方法是什么?目前,我正在编写一种简单的编程语言,它的处理方式是递归的.循环的节点列表,并说当前节点是一个变量节点,它将调用一个emit_variable_node函数,它将字面上的一些代码附加到字符串,例如:

以下代码是psuedo-ish,我在C中编写我的项目,并编译为C.

char *file_contents;

void emit_variable_node(VariableNode *var) {
    // I know += doesn't work on strings, just pretend it does.
    file_contents += var.getType();
    file_contents += " "; // a space
    file_contents += var.getName();
    // etc
}
Run Code Online (Sandbox Code Playgroud)

我还假设我们给出的代码已经过语义分析,并且是正确的.然后将file_contents字符串存储到临时文件中,该文件在由C编译器编译后删除.

这是一种不好的做法,还是有更好,更清洁的方法来做到这一点?

c compiler-construction

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

标签 统计

c ×2

arrays ×1

compiler-construction ×1

directory ×1

gcc ×1

go ×1

rust ×1

windows ×1