-
在C语言中,函数和模块是两个关键的概念,它们对于组织代码、实现复用和模块化编程至关重要。 一、函数(Functions) 函数是C语言中的基本构建块,用于执行特定的任务。一个函数定义了实现某个操作的代码块,它可以通过名字被多次调用。函数使得代码更加模块化,易于理解和维护。 1.1. 函数的基本组成部
-
一、 为什么要有动态内存分配 我们已经掌握的内存开辟方式有: int val = 20;// 在栈空间上开辟四个字节 char arr[10] = {0};// 在栈空间上开辟 10 个字节的连续空间 但是上述的开辟空间的方式有两个特点: 1.空间开辟大小是固定的。 2.数组在申明的时候,必须指定数
-
重要提醒,本文涉及许多C语言的高级概念,比如声明、定义、链接类型等。如果你不了解这些概念,可以先阅读我的另外一篇文章《C语言篇:语法进阶》。 内联替换 内联替换是一种常见的编译时优化方法,通过把函数调用原地替换为对应函数的代码,来避免函数调用产生的上下文切换开销,从而加快程序的运行速度。虽然内联替换
-
Rust 除了灵活的条件语句以外,循环结构的设计也十分成熟。这一点作为身经百战的开发者应该能感觉出来。 while 循环 while 循环是最典型的条件语句循环: 实例 fn main() { let mut number = 1; while number != 4 { println!("{}"
-
PHP 密码策略升级不需要一次性重置所有用户。先用 password_verify 验证旧哈希,再用 password_needs_rehash 判断算法或 cost 是否落后,并在同一次成功登录中原子更新密码哈希。
-
Rust 中的闭包是一种匿名函数,它可以捕获并存储其所在环境中的变量。 闭包允许在定义作用域之外访问变量,并且可以在需要时将其移动或借用给闭包使用。 闭包在 Rust 中被广泛应用于函数式编程、并发编程和事件驱动编程等领域。 闭包与函数的区别 闭包和普通函数都能封装一段逻辑,但闭包多了一项核心能力—
-
计算机程序必须在运行时管理它们所使用的内存资源。大多数的编程语言都有管理内存的功能: C/C++ 这样的语言主要通过手动方式管理内存,开发者需要手动的申请和释放内存资源。但为了提高开发效率,只要不影响程序功能的实现,许多开发者没有及时释放内存的习惯。所以手动管理内存的方式常常造成资源浪费。 Ja v
-
切片(Slice)是对数据值的部分引用。 切片这个名字往往出现在生物课上,我们做样本玻片的时候要从生物体上获取切片,以供在显微镜上观察。在 Rust 中,切片的意思大致也是这样,只不过它从数据取材引用。 字符串切片 最简单、最常用的数据切片类型是字符串切片(String Slice)。 实例 fn
-
Rust 中的结构体(Struct)和元组(Tuple),都能把若干个类型不一定相同的数据组合成一个整体。不同的是,结构体里的每个成员以及它自身都有名字,所以访问成员时,不需要再去记下标,读起来也更直观。元组通常用在没有明确定义的多值传递场景,而结构体则更适合用来规范那些常见的数据结构。结构体的每个
-
枚举类在 Rust 中并不像其他编程语言中的概念那样简单,但依然可以十分简单的使用: 实例 #[derive(Debug)] enum Book { Papery, Electronic } fn main() { let book = Book::Papery; println!("{:?}",
-
任何一门编程语言如果不能组织代码都是难以深入的,几乎没有一个软件产品是由一个源文件编译而成的。本教程到目前为止所有的程序都是在一个文件中编写的,主要是为了方便学习 Rust 语言的语法和概念。对于一个工程来讲,组织代码是十分重要的。 Rust 中有三个重要的组织概念:箱、包、模块。 箱(Crate)
-
本章介绍 Rust 语言的 I/O 操作。 接收命令行参数 命令行程序是计算机程序最基础的存在形式,几乎所有的操作系统都支持命令行程序并将可视化程序的运行基于命令行机制。 命令行程序必须能够接收来自命令行环境的参数,这些参数往往在一条命令行的命令之后以空格符分隔。在很多语言中(如 Ja va 和 C
-
集合(Collection)是数据结构中最普遍的数据存放形式,Rust 标准库中提供了丰富的集合类型帮助开发者处理数据结构的操作。 向量 向量(Vector)是一个存放多值的单数据结构,该结构将相同类型的值线性的存放在内存中。 向量是线性表,在 Rust 中的表示是 Vec。 向量的使用方式类似于列
-
面向对象的编程语言通常实现了数据的封装与继承并能基于数据调用方法。Rust 不是面向对象的编程语言,但这些功能都得以实现。 封装 封装就是对外显示的策略,在 Rust 中可以通过模块的机制来实现最外层的封装,并且每一个 Rust 文件都可以看作一个模块,模块内的元素可以通过 pub 关键字对外明示。
-
Rust 宏(Macros)是一种在编译时生成代码的强大工具,它允许你在编写代码时创建自定义语法扩展。 宏(Macro)是一种在代码中进行元编程(Metaprogramming)的技术,它允许在编译时生成代码,宏可以帮助简化代码,提高代码的可读性和可维护性,同时允许开发者在编译时执行一些代码生成的操