< 返回版块

kkonghao 发表于 2021-11-21 23:36

求问大佬在rust中对一个变量赋值()值和引用()分别是什么含义?主要是用来做什么?代码如下:



let a=();

let b=&();

let c=*const ();

评论区

写评论
包布丁 2021-12-03 00:23

这个例子直接 foo as fn() -> i32 就好了,不需要取指针走 transmute 绕一圈的。

--
👇
kkonghao: rust在()这里总能玩出点新花样,比如,新手看起来有点懵逼

fn foo() -> i32 {
    0
}


fn main() {

    let pointer = foo as *const ();
    
    let function = unsafe {
        std::mem::transmute::<*const (), fn() -> i32>(pointer)
    };

    println!("{}", function());
    
}

--
👇
Mike Tang: 空 tuple

&() 主要是在某些场景下类型的一致性。

*const 是常量指针

单独拿出来讲,看不出什么意义,要放具体场景中来讲。

作者 kkonghao 2021-11-22 22:38

rust在()这里总能玩出点新花样,比如,新手看起来有点懵逼

fn foo() -> i32 {
    0
}


fn main() {

    let pointer = foo as *const ();
    
    let function = unsafe {
        std::mem::transmute::<*const (), fn() -> i32>(pointer)
    };

    println!("{}", function());
    
}

--
👇
Mike Tang: 空 tuple

&() 主要是在某些场景下类型的一致性。

*const 是常量指针

单独拿出来讲,看不出什么意义,要放具体场景中来讲。

Mike Tang 2021-11-22 09:13

空 tuple

&() 主要是在某些场景下类型的一致性。

*const 是常量指针

单独拿出来讲,看不出什么意义,要放具体场景中来讲。

1 共 3 条评论, 1 页