ICode9

精准搜索请尝试: 精确搜索
  • Rust如何开发eBPF应用(一)?2022-04-17 11:33:10

    前言 eBPF是一项革命性的技术,可以在Linux内核中运行沙盒程序,而无需重新编译内核或加载内核模块。它能够在许多内核 hook 点安全地执行字节码,主要应用在云原生网络、安全、跟踪监控等方面。 eBPF 基金会 (https://ebpf.io) 是一个为 eBPF 技术而创建的非盈利性组织,隶属于 Linux 基

  • 【小测试】rust中的数组越界——好吧,这下证明rust不是零成本抽象了吧2022-04-16 09:03:35

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 1.编译期发现的数组越界 在数组下标是常量的情况下,编译期就会发现。 cargo new arr_test 在arr_test/src/main.rs中写入: fn main() { let mut arr : [i64;10] =

  • 【小测试】rust中的无符号整数溢出2022-04-15 16:04:18

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 1.在编译阶段就可以识别出来的溢出 fn main(){ let a : usize = 1; println!("{}",a-2); } 执行rustc报以下错误: rustc usize_test.rs error: this arithmet

  • Rust 所有权2022-04-13 10:04:38

    所有权规则 Rust 中的每一个值都有一个被称为其 所有者(owner)的变量。 值在任一时刻有且只有一个所有者。 当所有者(变量)离开作用域,这个值将被丢弃。 引用和Copy特性 赋值过程:包括变量赋值,函数传参,函数返回 如果类型实现了Copy特性(基本简单类型),传参过程相当于创建了一份新拷贝(克

  • 关于职业生涯的思考2022-04-13 01:00:29

    媳妇儿公司是做政府项目外包的,平时接待的大多是五十往上的老年人。 前天媳妇儿跟我说,她接到了一个简历,简历上的人是之前的工作是个程序员,因为上个项目结束,被辞退了,最近大环境不好在家呆了很长时间没找到工作,投了他们公司。 说起来程序员看似挣得多,但是危机还是很严重的,不像有一些

  • 解决rust编译目标为musl时openssl报错2022-04-11 01:04:18

    同步:https://zhufn.fun/archives/rust-musl-ssl/ 为了节省容器启动时间,准备把rust写的api编译好后扔进docker里,于是编译到target:x86_64-unknown-linux-musl 然后openssl炸了,不认libssl-dev了,查了下要重新编译。。。 但是,我们发现了一个神奇的docker镜象https://github.com/emk/ru

  • Rust使用HashMap统计出现次数2022-04-10 12:03:08

    代码如下: use std::collections::HashMap; fn main() { let text = "Hello world good world"; let mut map = HashMap::new(); for word in text.split_whitespace() { let count = map.entry(word).or_insert(0); *count += 1; }

  • Rust 函数传参2022-04-09 09:00:08

    形参&str 使用&str作为形参,入参可以为&str,或者&String。 fn print_animal_name(name: &str) { println!("{name}"); } let oreo = "oreo".to_owned(); let jax = "jax"; print_animal_name(&oreo); print_animal_name(jax); 形

  • 【Tokio】优势和劣势2022-03-31 18:31:44

    环境 Time 2022-01-13 Rust 1.57.0 Tokio 1.15.0 概念 参考:https://tokio.rs/tokio/tutorial Tokio 是 Rust 编程语言的异步运行时。它提供了编写网络应用程序所需的构建基础。它提供了针对各种系统的灵活性,从具有数十个内核的大型服务器到小型嵌入式设备。 在高层次上,Tokio提供

  • rust迭代器2022-03-30 14:03:49

    // iter:返回的值是不可变引用,即&T// iter_mut:返回的值是可变引用,即&mut T// into_iter:返回的是T类型的值,会交出所有权// filter过滤(条件),map映射+fold折叠(表达式) https://blog.csdn.net/guiqulaxi920/article/details/78823541

  • 基于所有权的资源管理--构造2022-03-29 15:03:05

    构造 构造一个用户定义类型的实例只有一种方法:为其命名,并一次性初始化其所有字段:   struct Foo { a: u8, b: u32, c: bool, } enum Bar { X(u32), Y(bool), } struct Unit; let foo = Foo { a: 0, b: 1, c: false }; let bar = Bar::X(0); let empty =

  • Rust 中的数据布局--可选的数据布局2022-03-29 12:03:39

      Rust 允许你指定不同于默认的数据布局策略,并为你提供了不安全代码指南。 repr(C) 这是最重要的“repr”。它的意图相当简单:做 C 所做的事。字段的顺序、大小和对齐方式与你在 C 或 C++ 中期望的完全一样。任何你期望通过 FFI 边界的类型都应该有repr(C),因为 C 是编程世界的语言

  • Rust极简教程2022-03-29 11:33:55

    目录简介特性特征用途安装核心组件常用命令基础语法数据类型标量类型复合类型示例条件语句循环输出&输入输出输出花括号输出非基础类型输入所有权切片结构体枚举MatchIf-letOption集合vector容器String代码组织命名空间访问其他mod和crate访问权限和关键字访问其他文件中的对象使

  • rust 模块、路径、项目类型等相关内容2022-03-08 11:04:15

    rust 模块路径 转载 https://blog.csdn.net/wowotuo/article/details/107591501 rust 项目编译类型 转载 https://blog.51cto.com/u_15127605/2763424

  • Rust 静态调用 C++2022-03-07 23:00:56

    使用 cmake 的局限性 .lib 合并问题 cmake 不会将多个 .lib 合并, 因此可能需要使用 add_custom_command 命令手动使用 MSVC 工具 lib.exe 来创建最终具有 C ABI 的 .lib 静态库文件供Rust调用. set(Target "output") add_library("${Target}" STATIC lib.cpp) target_include_di

  • Rust闭包学习心得2022-03-07 17:04:45

    move && Fn / FnMut / FnOnce move 影响的是闭包如何捕获环境中的变量 , 影响的是闭包初始化之后外部变量是否还能继续使用。 闭包体内如何使用变量决定了闭包实现的是哪种Trait,影响了闭包自身的类型。但是闭包体使用的变量的方式同时也影响了闭包初始化之后外部变量能否继续使

  • Rust调用async函数时变量无法在线程间安全传递的错误2022-03-07 17:03:37

    同步:https://zhufn.fun/archives/rust-var-need-drop-before-async/ 这是一段伪代码 async fn a() { let a:T = ...;//T一个没有实现 Send的类型 let b = foo(a); boo(b).await; } async fn boo() -> i32 { ... } 这种情况下,会有一个future cannot be sent betw

  • rust语言学习2022-03-06 16:33:20

    ------------恢复内容开始------------    cargo build以后目录,             注意函数是fn开头,print有感叹号,                                     注意用箭头表示返回类型,     注意表达式后面不能有分号,      

  • Rust一些设计的不好的地方2022-03-06 11:35:54

    第一个就是Option和Result里的map_or,map_or_else,即无论是按方法名还是按求值逻辑,第一个参数都应该是map方法/闭包,第二个才是默认值(map_or_else则是默认值的generate方法); 但是在rust里这个是反着来的,我是不太爽的,因为按函数名,明显第一个参数应该是map求值逻辑,当没有的时候再else二

  • 「Datafuse Labs」今天一岁啦2022-03-05 10:33:25

    「Datafuse Labs」是一家开源 Data Cloud 基础设施研发商,也是背后支撑 Databend 开源项目的核心团队,致力于为用户、企业提供更低成本、更高性能、更加易用的数据建设处理一站式平台。 「Datafuse Labs」成立于 2021 年 3 月 5 日,到今天刚好一岁啦。 让我们一起来回顾一下「Datafu

  • 将 Rust 代码转换成 HIR 和 MIR2022-03-01 19:04:50

    HIR/MIR HIR 是 Rust 在编译过程中的一个中间产物,在转化成更为晦涩难懂的 MIR 之前,它可以帮助我们一窥编译器的小小细节。 https://rustc-dev-guide.rust-lang.org/hir.html https://rustc-dev-guide.rust-lang.org/mir/index.html 转换命令 cargo rustc -- -Z unpretty=hir 注意

  • 极客日报:李想称十年后要成为汽车界苹果;雅虎邮箱停服;Linux内核欲采用现代C语言标准 | 极客头条2022-02-28 10:04:22

    「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点! 华为发布首款鸿蒙墨水平板 李想称十年后要成为汽车界苹果 小米发布“小感量

  • Rust所有权及引用2022-02-25 15:31:39

    Rust 所有权和借用 Rust之所以可以成为万众瞩目的语言, 就是因为其内存安全性. 在以往内存安全几乎全都是通过GC的方式实现, 但是GC会引来性能、CPU以及Stop The World等问题, 在需要高性能的场景是不可以接受的,因此Rust使用一种与众不同的方式 解决内存安全问题: 所有权机制 Rust

  • Rust复杂的表达式解析结果探讨2022-02-25 13:59:03

    在上文Solana项目学习(一):Hello World_biakia0610的专栏-CSDN博客中,我们学习了solana的helloworld例子,在代码最后一部分,有一个非常复杂的表达式: greeting_account.serialize(&mut &mut account.data.borrow_mut()[..])?; 这里的&mut &mut account.data.borrow_mut()[..] 到底是返

  • 不用rustup,Windows下gnu版Rust安装与开发环境配置2022-02-25 11:33:37

    写在前面 本文介绍了在不使用rustup的情况下,在Windows上安装gnu版的Rust,并配置开发环境(VSCode + rust-analyzer,CLion + IntelliJ Rust)的过程。Win10上亲测有效。 预备知识: rustup:rustup 是Rust 的安装和管理工具,感兴趣的读者可自行上网了解。 “gnu版本的Rust”:Rust有工具链(toolc

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有