首页 > 其他分享 >size of rust closure

size of rust closure

时间:2024-08-18 08:59:08浏览次数:11  
标签:closure String rust println foo fn size

principle

https://doc.rust-lang.org/reference/types/closure.html?highlight=fnonce#closure-types

demo

1

fn f<F : FnOnce() -> String> (g: F) {
    println!("{}", std::mem::size_of::<F>());
    println!("{}", g());
}


fn main() {
    // an immutable string slice(&str)
    let s = "foo";

    f(|| {
        s.to_string()
    });
}

The output will be:

8
foo

2

fn f<F : FnOnce() -> String> (g: F) {
    println!("{}", std::mem::size_of::<F>());
    println!("{}", g());
}


fn main() {
    // type String
    let s = "foo".to_string();

    f(|| {
        s
    });
}

The output will be:

24
foo

标签:closure,String,rust,println,foo,fn,size
From: https://www.cnblogs.com/lddcool/p/18365247

相关文章

  • 关于sizeof()与strlen()的详解与题例
    ......
  • GeoTrust OV通配符SSL证书申请!
    GeoTrust作为知名的SSL证书供应商,拥有广泛的市场接受度和高占有率,其OV通配符SSL证书更是受到众多企业和网站的信任和采用。GeoTrustSSL证书的优势在于其品牌信誉、强大的加密能力、多样化的验证级别以适应不同安全需求、出色的浏览器兼容性、灵活的域名支持选项,以及便捷的管......
  • 【C语言】sizeof 和 strlen
    sizeof和strlen的对比sizeof在学习操作符的时候,我们学习了sizeof,sizeof计算变量所占内存内存空间大小的,单位是字节。如果操作数是类型的话,计算的是使用类型创建的变量所占内存空间的大小。sizeof只关注占用内存空间的大小,不在乎内存中存放什么数据。比如:#include......
  • 将 Rust 代码编译为 WASM
    前言在现代Web开发中,WebAssembly(WASM)已成为一种强大的工具。它使得开发者可以在浏览器中运行高性能的代码,跨越传统的JavaScript性能限制。Rust语言因其高效性和内存安全性,成为了编写WASM模块的热门选择。本文将介绍如何将Rust代码编译为WebAssembly,并在Web项目中......
  • Rust 之环境搭建
    前言Rust是一种现代的系统级编程语言,以其内存安全性、高性能和简洁的语法而著称。本文将介绍如何在不同操作系统上搭建Rust开发环境,并配置好基础工具,使您能够快速开始Rust编程。1.安装RustRust官方推荐使用rustup工具来管理Rust的安装和更新。rustup允许您轻松安......
  • 【JVM】jvm 线程栈的一些设置 Thread Size
    1.概述下面是jvm线程栈的一些设置,简单的了解一下。2.XssXss和ThreadStackSize是等价的参数,用于设置Java线程栈的大小,单位为Kb。在命令行中,-Xss100K和-XX:ThreadStackSize=100是表示相同意义的参数。Xss参数的实现:Xss参数是通过设置ThreadStackSize数据......
  • 智能合约语言对比:Solidity | Vyper | Move | Rust
    当你想要进入Web3领域做开发,可能会想知道应该先学哪门编程语言,或者是哪门语言最适合你。这里有四种现在比较热门的语言:Solidity、Vyper、Move和Rust。下面我会用代码示例解释一下区别,帮你找到学习的方向。Solidity:这是以太坊智能合约的主要编程语言。如果你想在以太坊上开发......
  • 【Rust光年纪】Rust数据结构库全方位解析:从核心功能到API概览
    提升Rust项目效率的利器:六款优秀数据结构库详解前言随着Rust编程语言的不断发展和普及,开发者们对于高效的数据结构库需求日益增长。在本文中,我们将介绍一些优秀的Rust数据结构库,它们分别为heapless、arrayvec、smallvec、evmap、hashbrown和generic-array。这些库提供了各......
  • Bug | priority_queue.size()无符号整型进行减法运算引发的惨案
    问题描述:使用优先队列(priority_queue)来实现大根堆和小根堆。在维护两个堆平衡的过程中,需要使用priority_queue.size()来判断两个堆的大小。因为.size()返回的是无符号类型,直接进行减法运算会导致错误。错误代码if(max_heap.size()-min_heap.size()>1)Balance(1);......
  • 简单在 WinUI 仿造 WPF 的 ColumnDefinition SharedSizeGroup 共享列宽功能
    本文将告诉大家如何在WinUI3或UNO里面,仿造WPF的ColumnDefinitionSharedSizeGroup共享列宽功能本文的实现代码是大量从https://github.com/Qiu233/WinUISharedSizeGroup抄的,感谢大佬提供的代码。我在此基础上简化了对Behavior的依赖,在本文末尾放上了全部代码的下载......