Rust学习笔记005-函数

函数定义 使用fn关键字定义函数; 函数名使用snake_case规范命名; 函数可以定义在main函数之前或之后,Rust 不关心函数定义于何处; 1 2 3 fn test_function(a: i32,b: bool)-> u32 {//... } 函数参数 函数可以定义多个参数,使用逗号,……

阅读全文

Rust学习笔记004-数据类型

前言 Rust是静态类型语言,在编译时就必须知道所有变量的类型。 两种方式确定类型: 根据值及使用方式,编译器通常可以推断出我们想要用的类型; 当多种类型均有可能时,必须增加类型注解; 如下代码,不加类型编译会……

阅读全文

Rust学习笔记003-变量与可变性

变量声明 语法格式: 1 2 let变量名: 变量类型=变量值;letvar: i32 =123; 有几点要注意: 以关键字let开头,类型一定跟在冒号:后面; 变量必须先声明,初始化后才能使用; 初始化 Rust中,每个变量必须被合理……

阅读全文

Rust学习笔记002-编程概念

标识符 Rust 中的名称被称为 “标识符”(“identifier”),它们可以是任意非空的 ASCII 字符串,不过有如下限制: 要么是: 第一个字符是字母。 其它字符是字母数字或者 _。 或者是: 第一个字符是 _。 标识符需多于一个……

阅读全文

Rust学习笔记001-初相识

Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety. Rust是一门系统级编程语言,具有三个特点: 运行快 防止段错误 保证线程安全 C和C++是业界最流行的系统编程语言,Rust的定位与之类似,但是增加了安全性。 版本和发布策略 语……

阅读全文

Rust学习笔记000-安装

今天正式开始学Rust。 安装 学习一门新语言,第一件事当然是先安装。官方推荐使用rustup工具来管理安装,并提供一键安装命令,只需要在终端执行以下命令即可: 1 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 其实就是,先下载安装rus……

阅读全文

Go踩坑系列 | 为什么request.URL.Scheme取不到值

遇到的问题 最近在阅读echo框架的源码,发现context.go文件在读取请求的scheme时是单独封装了个方法。就很奇怪,go语言标准库不是自带了方法吗,干嘛不用? 于是写了段代码来验证: 1 2 3 4 5 6……

阅读全文

Go服务平滑重启实践

为了实现Golang业务的平滑重载,研究了一下github上比较成熟的解决方案,找到如下三个库: grace endless overseer 大致看了一下源码,grace和endless是比较像的,实现步骤如下: 监听信号 收到信号时fork子……

阅读全文

go:linkname用法

什么是go:linkname 这里引用Go官方文档的解释: //go:linkname localname importpath.name The //go:linkname directive instructs the compiler to use “importpath.name” as the object file symbol name for the variable or function declared as “localname” in the source code. Because this directive can subvert the type system and package modularity, it is only enabled in……

阅读全文