- 博客(63)
- 资源 (2)
- 收藏
- 关注
原创 Rust-模式匹配
本文上半部分会介绍各种不同类型模式的例子帮助学习,而从开始,会把常用的模式语法都一一罗列出来,方便在未来的开发生涯中随时检索查阅。汉语字典中对“模式”的解释是:事物的标准样式。在计算机科学中,它指特定类型的数据(往往是序列或是树形结构)满足某一特定结构或格式。“匹配”本身是指一个判断寻找过程。最早的模式匹配用于文本编辑器中的正则字符串搜索,之后才作为编程语言特性。Rust 拥有着高级且设计良好的模式系统。当然,这也要归功于 Rust 语言设计独有的严谨标准。
2024-10-06 13:54:51
1829
4
原创 Rust-枚举
枚举(enum 或 enumeration)允许你通过列举可能的成员来定义一个枚举类型Clubs,Spades,Diamonds,Hearts,//分别代表:梅花、黑桃、方块、红桃任何一张扑克,它的花色肯定会落在这四种花色中,而且也只会落在其中一个花色上。这种特性非常适合枚举的使用,因为枚举值只可能是其中某一个成员。抽象来看,四种花色尽管是不同的花色,但是它们都是扑克花色这个概念,因此当某个函数处理扑克花色时,可以把它们当作相同的类型进行传参。可能你会注意到,我们对上面段落中的枚举类型 和。
2024-10-05 16:19:45
1776
1
原创 Rust-结构体
我们定义一个结构体Rectangle ,这个结构体表示的是一个矩形,它有着 width 和 height 两个元素(字段)。我们现在要给这个结构体专门定义一个“方法”,用以计算矩形的面积。当我们为一个给定的结构体定义方法时,需要添加impl关键字,也就是在impl块中编写结构体的一些方法。另外,一个结构体可以有多个impl块存在。在下面的代码中,我们给Rectangle 结构体上成功定义了area 方法,用来计算矩形的面积。
2024-10-03 18:09:14
1524
1
原创 Rust - 字符串:&str 与 String
总的来说,String 和 &str 在 Rust 中提供了灵活的字符串处理机制,允许你根据需要选择最合适的类型。String 提供了可变性和动态内存管理,而 &str 提供了对字符串数据的不可变引用,这两者在不同的场景下都非常有用。
2024-09-23 15:13:57
2025
原创 Rust - 所有权
我们已经见过字符串字面值 let s =“hello”,s 是被硬编码进程序里的字符串值(类型为 &str )。字符串字面值是很方便的,但是它并不适用于所有场景。字符串字面值是不可变的,因为被硬编码到程序代码中并非所有字符串的值都能在编写代码时得知例如,字符串是需要程序运行时,通过用户动态输入然后存储在内存中的,这种情况,字符串字面值就完全无用武之地。为此,Rust 为我们提供动态字符串类型:String,该类型被分配到堆上,因此可以动态伸缩,也就能存储在编译时大小未知的文本。
2024-04-14 17:59:09
1234
1
原创 Rust - 流程控制
Rust 程序是从上而下顺序执行的,在此过程中,我们可以通过循环、分支等流程控制方式,更好的实现相应的功能。根据条件是否为真来决定是否执行某些代码,以及根据条件是否为真来重复运行一段代码的能力是大部分编程语言的基本组成部分。Rust 代码中最常见的用来控制程序进行条件执行结构的是 if 表达式和循环。
2024-04-14 14:48:38
1040
原创 Rust - 函数
Rust中通过 fn 关键字来声明某个函数。针对函数名,Rust使用snake case命名规范,即所有的字母都是小写的,单词之间使用下划线分开。
2024-04-10 17:50:34
842
1
原创 Rust - 安装(Windows)
在安装 Rust 时选择 MSVC(Microsoft Visual C++)和 GNU 工具链(GNU Compiler Collection)之间的主要区别在于 Rust 编译器使用的底层 C 编译器。接下来检验安装情况:在命令行解释器中输入 echo $Env:PATH,当看到 .cargo\bin 存在,即表示 rust 环境变量写入成功。是Rust的构建系统和包管理工具,能够构建项目代码、下载依赖库、构建库,在安装Rust时会自动安装。配置完毕后,输入1,点击回车继续安装,等待安装完成。
2023-12-28 14:36:29
6735
3
原创 C语言文件操作实现登录注册
C语言登录注册、文件操作、文件实现登录注册使用 user_data.txt 文件存储用户账号密码信息,分为注册与登录两个功能。注册功能将用户填写的用户名与密码写入到文件中,并判断是否写入(注册)成功。登录功能将用户填写的用户名和密码与文件中存储用户名密码进行比较,符合则登录成功,不符合则登录失败。
2022-10-15 11:14:22
11525
26
原创 验证哥德巴赫猜想
C语言使用函数验证哥德巴赫猜想:任何一个不小于 6 的偶数均可表示为两个奇素数之和。如 6=3+3,8=3+5,…,18=5+13。将 6~100 之间的偶数都表示成两个素数之和,打印时一行打印 5 组。试编写相应程序。
2022-10-14 14:19:03
3347
原创 顺序查找与二分查找
输入 10 个整数,存入数组 a 中,再输入一个数 x,然后在数组中查找 x,如果找到,则输出相应的最小下标,否则输出“Not Found”。
2022-10-14 10:47:58
670
原创 使用冒泡法对十个整数进行排序
第一次外循环,比较的是前9个数,依次交换,最大的数拿来和第十个位置数比较,大则放到第十个位置上,小则待在第九个位置上。每次都在a[0]~a[N]间比较,选出最大的一个数放到第a[N+1]位置上,故只需要进行9次外循环。第九次外循环,比较的还是前2个数,最大的数,交换放到第二个位置上,此时第一个位置恰为最小数。第二次外循环,比较的是前8个数,最大的数,依次交换放到第九个位置上。第八次外循环,比较的是前2个数,最大的数,依次交换放到第三个位置上。输入10个整数,将它们从小到大排序后输出,使用冒泡排序算法。
2022-10-14 09:43:25
9587
原创 C语言文件操作
文件就是在磁盘上的一段。不同文件的格式是不一样的,也就是说文件存储的数据是不同的。比如 txt(文本文件) 存储的是字符数据,png(图片文件) 存储的是颜色标识数据,exe(可执行文件) 存储的都是代码。当然数据的本质都是二进制的 0和1,不同的文件在宏观上都是使用 后缀 来区分的。所谓文件操作,就是把文件内容读进程序里,然后根据格式进行解析,进行读写等操作。.........
2022-06-24 09:08:38
982
原创 C语言指针的一些易错点
指针是一种数据类型,就像 int和 float,int 装整型数据,float 装浮点型数据,指针装地址型数据。C语言中的地址包括位置信息(内存编号,或称纯地址)和它所指向的数据的类型信息,或者说它是“带类型的地址”。指向是什么意思?简而言之,指针变量装哪块地址,它就指向哪一块空间。指针的类型决定着指针对存储空间的读写方式,所以首先指针与被指对象的类型要对应。内存操作符”*“:一个指针 p 指向一个变量的地址,” *+p “,就是这个变量本身。...............
2022-06-22 11:41:01
892
原创 C语言概念知识扫盲
程序:一组计算机能识别和执行的指令,每一条指令使计算机执行特定的操作。一个程序由一个或多个源程序文件组成。程序最根本的功能是对数据的处理,还需要对数据处理的过程进行控制。数据结构:对数据的描述,在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。算法:对操作的描述,要求计算机进行操作的步骤。有效算法的特点(判断算法有效的条件):结构化算法:由三种基本控制结构组成的算法结构。程序的三种基本控制结构:顺序结构、分支结构、循环结构。结构化程序:用计算机语言表示的结构化算法。......
2022-06-21 17:42:27
1494
原创 C语言自定义函数的一些注意事项
函数的参数、函数与全局变量、内部函数和外部函数、外部函数、内部函数、函数声明的作用、extern、static、函数作用域
2022-06-19 16:03:39
3079
原创 C语言变量的存储方式和生存期
C语言变量的存储方式和生存期、动态存储方式与静态存储方式、C语言变量的存储类别、局部变量的存储类别、自动的(auto)、静态的(static)、寄存器的(register)、外部的(extern)、自动变量(auto)、静态局部变量(static)、寄存器变量(register)、全局变量的存储类别、在一个文件内扩展全局变量的作用域、将全局变量的作用域扩展到其他文件、将外部变量的作用域限制在本文件中、static对全局变量的限制作用.........
2022-06-19 12:16:26
5346
原创 C语言字符串的一些使用注意事项
字符串输入、字符串复制、字符串拼接、字符串长度、'\0'、\0、计算字符串长度、有效字符个数、scanf、gets、strcpy、strcat、字符串大小、字符串比较
2022-06-16 13:04:21
1337
原创 Matlab简单入门
文章目录一、基础阶段(一)数据类型1.数值类型2.逻辑类型3.字符和字符串4.函数句柄5.单元数组类型6.结构体类型(二)运算符1.算数运算符2.关系运算符3.逻辑运算符4.运算优先级二、数组和矩阵分析(一)数组及其函数1.数组的建立2.数组元素的引用3.算数运算4.关系运算5.逻辑运算6.相关函数(二)矩阵及其函数1.矩阵的创建直接创建函数创建全零矩阵zeros( )全一矩阵ones( )单位矩阵eye( )0~1间均匀分布的随机矩阵rand( )标准正态分布随机矩阵randn( )魔方矩阵magic(
2021-10-03 21:32:52
2267
原创 Python学习_基础_34_异常处理
Python学习-异常处理一、基本概念什么是异常?异常是程序发生错误的信号,程序一旦出错就会抛出异常,程序的运行随即终止。异常的三大组成部分异常的追踪信息异常的类型异常的内容为何处理异常?本来程序一旦出现异常就整体结束掉了,有了异常处理以后,在遇到错误时就会有相应的处理机制不会任由程序崩溃掉。而且我们要捕捉异常并处理,将出错信息记录到日志内。二、如何处理异常语法上的错误:SyntaxError有错改错,不再赘述。逻辑上的错误常见逻辑错误如下:# TypeError:数字类
2021-09-07 21:16:22
265
原创 Python学习_基础_33_面向对象编程进阶(元类)
Python-面向对象编程进阶-元类一、基本概念什么是元类?对象 → 通过调用类实例化产生类 → 通过调用元类实例化产生元类 :就是用来实例化产生类的类。我们使用class关键字来定义一个类,背后发生的事情实质就是调用了元类。class test: passprint(type(test)) # <class 'type'>如上所示,type就是元类,我们用class关键字定义的所有的类以及内置的类都是由元类type实例化产生的。至于type的妈
2021-09-07 21:13:16
228
原创 Python学习_基础_32_面向对象编程进阶(反射、内置方法)
Python-面向对象编程进阶一、面向对象编程之反射python是动态语言,而反射机制被视为动态语言的关键。(一)基本概念反射机制:反射是一种“能力”,指的是在程序的运行状态中,对于任意一个类,都可以知道这个类的所有属性和方法;对于任意一个对象,都能够调用他的任意方法和属性。即在程序运行过程中,可以"动态"获取对象的信息,调用属性或方法。那么反射有什么作用呢?当我们想要查看对象拥有的属性时,使用的是__dict__方法,不过对象使用这个方法取不到类的属性,只能取到对象专属于自己的属性。而通
2021-09-05 20:40:34
218
原创 Python学习_基础_31_常用的内置函数
Python-常用的内置函数一、较简单的内置函数abs():求绝对值print(abs(-1)) # 1all():在一个可迭代对象中,逐个取出来所有值,如果所有取出来的值(x)的布尔运算结果(bool(x))都为True,则返回Trueprint(all([1, 'aaa', '1'])) # Trueprint(all([1, 'aaa', ''])) # False 列表的最后一个元素是空字符串print(all([1, 'aaa', ' '])) # True 列表
2021-09-04 22:32:51
151
原创 Python学习_基础_30_绑定方法与非绑定方法、函数的类型提示(补充)
Python-绑定方法与非绑定方法一、绑定方法绑定方法的特殊之处在于将调用者本身当做第一个参数自动传入(一)绑定给对象的方法:调用者是对象,自动传入的是对象在类中正常定义的函数默认是绑定到对象的,我们举一个输出ip地址的例子:class interweb: def __init__(self, ip, port): self.ip = ip self.port = port def ipaddress(self): print(
2021-09-04 19:15:06
203
原创 Python学习_基础_29_面向对象编程之多态、鸭子类型
Python-面向对象编程之多态一、基本概念什么是多态?多态:同一事物有多种形态比如动物有多种形态:猫、狗、猪class Animal: # 同一类事物:动物 def talk(self): print('动物电码,滴滴哒哒')class Cat(Animal): # 动物的形态之一:猫 def talk(self): print('喵喵喵')class Dog(Animal): # 动物的形态之二:狗 def talk
2021-09-03 18:37:55
327
原创 Python学习_基础_28_面向对象编程之继承
Python-面向对象编程之继承一、基本概念什么是继承继承是一种创建新类的方式,新建的类可称为子类或派生类,被继承的类称为父类,父类又可称为基类或超类,子类会遗传父类的属性。需要注意的是:python支持多继承,在Python中,新建的类可以继承一个或多个父类。继承的形式:class ParentClass1: # 定义父类1 passclass ParentClass2: # 定义父类2 passclass SubClass1(ParentClass1): #
2021-09-03 16:05:49
547
原创 Python学习_基础_27_面向对象编程之封装(隐藏属性、property装饰器)
Python-面对对象编程之封装一、封装介绍面向对象编程有三大特性:封装、继承、多态。封装是面向对象三大特性最核心的一个特性,封装的意思其实就是“整合”。二、将封装的属性进行隐藏操作(一)如何隐藏:在属性名前加_ _前缀,就会实现一个对外隐藏属性效果class Foo: __x = 1 def __f1(self): print('from test')print(Foo.__x) # 报错print(Foo.__f1) # 报错该隐藏需要注意的
2021-08-30 20:54:02
309
原创 Python学习_基础_26_面向对象编程基础(类与对象)
Python-面对对象编程基础一、概念引入我们之前学习过“面向过程编程”的概念,面向过程的核心是“过程”二字,过程的终极奥义就是将程序流程化;过程是“流水线”,用来分步骤解决问题的。相对应的,“面向对象”的核心是“对象”二字,我们说 “对象”就好像是一个容器,用来盛放数据与功能。类也是“容器”,该容器用来存放同类对象共有的数据与功能。举个例子:我们要写一个简单的餐厅人员信息程序,要求具有厨师和服务员两类人的数据和个人简介功能(函数)。# 厨师数据:name、grade、sexcook_na
2021-08-28 17:11:52
456
原创 Python学习_基础_25_正则表达式
Python-常用模块之re模块(正则表达式)一、基本概念什么是正则?正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串组成规则的方法。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。简单地说,正则表达式就是一门专门用于处理字符串的增强语法。本质上是嵌入在Python中的一种微小的、高度专业化的编程语言,可通过re模块获得。为什么要用正则?给定一
2021-08-26 20:40:56
512
原创 Python学习_基础_24_常用模块之logging模块(日志模块)
Python-常用模块之logging(日志)模块一、基本概念什么是日志?日志是对软件执行时所发生事件的一种追踪方式。软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生。一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是不同的)。开发者还会区分事件的重要性,重要性也被称为等级或严重性。日志(logging)模块提供了一系列的函数(debug、info、warning、critical)来适应不同的应用场景。名称描述DEBUG细节信息,在我们
2021-08-25 20:28:54
846
转载 【转载】Python之logging模块(日志模块)
Python之logging模块目录什么是日志什么时候使用日志basicConfighandlerTraceback文件配置日志切割根据日期时间分割日志根据文件大小分割日志推荐配置示例什么是日志#日志是对软件执行时所发生事件的一种追踪方式。软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生。一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是不同的)。开发者还会区分事件的重要性,重要性也被称为等级或严重性。什么时候使用日志#日志(l
2021-08-25 19:39:19
1368
C语言程序设计研究生考试大纲
2023-05-01
Web前端HTML+CSS+JavaScript基础知识总结.xmind
2021-07-27
JavaWeb教学管理系统项目
2022-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅