rust-quiz:006-value-of-assignment.rs

题目

use std::mem;

fn main() {
    let a;
    let a = a = true;
    print!("{}", mem::size_of_val(&a));
}

关键

  • ZST
    ZSTrust中使用广泛。
    大多数编程语言中的MapSet,有一种很奇妙的关系。
    Set基本上都是构建于Map之上,但是主要的问题是Value应该如何选取。
    ValueSetMap实现中,都是无关紧要的,但都为此付出了额外的内存开销。
    ZST就是解决这种问题的办法,作为一种无大小的类型,并不占用内存空间。
    常见的()就是一个ZST

  • 变量遮蔽
    rust中变量的重新绑定let会对变量进行遮蔽。

  • 赋值结果
    let a = 1;的赋值结果会返回什么,rust的赋值结果返回是()

  • 内存大小
    std:: mem::size_of_val可以查探对象占用内存的大小。

审题

很明显,本题主要是得到a的内存占用大小。
let a = a = true;,如果担心不知道bool类型占用多少。
我可以告诉你,std:: mem::size_of_val(&true)1

但关键的是,let a = (a = true),赋值语句的结果是()
因此let a = ()()作为ZSTstd:: mem:size_of_val(&())0

结果

不言而喻,结果是0

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!