小编die*_*_K3的帖子

Go语言的概念记忆模型

我向你们中的Go程序员提问.我找不到有关Go内存模型细节的信息.我将尝试描述我的问题:

如果我在C中声明并定义一个变量或数组,我知道它存在于RAM的某个位置,只有一个特定的地址,直到我做了一些会改变它的东西.

这不是Python中的情况:Python为我做了整个内存管理,我不能确定我的数据总是位于一个位置.例如,字符串在实践中是不可变的,即使语言表明它们不是.这使得使用敏感数据的安全编程几乎不可能(或者至少非常不切实际).

我的问题是:Go如何从这个角度开展工作.它更像是C还是像Python一样?还是完全不同?是否可以像在C中一样舒适地处理敏感数据?

go

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

编写通用交换函数

我正在尝试学习 Rust 并想编写一个简单的通用交换函数

fn swap<T>(i: &mut T, j: &mut T) {
    let tmp: T = *i;
    *i = *j;
    *j = tmp;
}
fn main() {
    let i: &int = &mut 5;
    let j: &int = &mut 6;
    println!("{} {}", i, j);
    swap(i, j);
    println!("{} {}", i, j);
}
Run Code Online (Sandbox Code Playgroud)

但是编译器会抛出错误消息:

helloworld.rs:2:18: 2:20 error: cannot move out of dereference of `&mut`-pointer
helloworld.rs:2     let tmp: T = *i;
                                 ^~
helloworld.rs:2:9: 2:12 note: attempting to move value to here
helloworld.rs:2     let tmp: T …
Run Code Online (Sandbox Code Playgroud)

rust

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

标签 统计

go ×1

rust ×1