当前位置: 首页 > news >正文

2023-08-15 Untiy进阶 C#知识补充6——C#7主要功能与语法

文章目录

        • 一、字面值改进
        • 二、out 内部声明 / 弃元
        • 三、ref 返回值
        • 四、本地函数
        • 五、抛出表达式
        • 六、元组
        • 七、模式匹配

​ 注意:在此仅提及 Unity 开发中会用到的一些功能和特性,对于不适合在 Unity 中使用的内容会忽略。

​ C# 7 对应 Unity 版本:

  • Unity 2018.3 支持 C# 7
  • Unity 2019.4支持 C# 7.3

​ 7.1、7.2、7.3 相关内容都是基于 C# 7 的一些改进

​ C# 7 新增功能和语法:

  1. 字面值改进
  2. out 内部声明 / 弃元
  3. ref 返回值
  4. 本地函数
  5. 抛出表达式
  6. 元组
  7. 模式匹配

一、字面值改进

​ 在声明数值变量时,为了方便查看数值,可以在数值之间插入 “_” 作为分隔符。

​ 主要作用:方便数值变量的阅读。

int i = 9_9123_1239;
print(i);  // "991231239"int i2 = 0xAB_CD_17;
print(i2); // "11259159"

二、out 内部声明 / 弃元

​ 不需要再使用带有 out 参数的函数之前,声明对应变量。
​ 作用:简化代码,提高开发效率。

​ 举例:

public class Lesson8 : MonoBehaviour
{public void Calc(out int a, out int b) {a = 10;b = 20;}public void Calc(out float a, out float b) {a = 10;b = 20;}
}

(一)以往 out 使用方式

public class Lesson8 : MonoBehaviour
{void Start() {int a;int b;Calc(out a, out b);}
}

(二)现在的用法

public class Lesson8 : MonoBehaviour
{void Start() {Calc(out int a, out int b);print(x); // "10"print(y); // "20"}
}

​ 可以配合 var 类型使用,但是在函数重载时需要指明哪种类型:

Calc(out var a, out var b); // 报错,不清楚 a、b 是 int 还是 float
Calc(out int a, out var b); // 通过,b 识别为 int

(三)使用弃元符号 “_”

​ 使用 “_” 弃元符号,省略不想使用的参数:

public class Lesson8 : MonoBehaviour
{void Start() {Calc(out int c, out _); // 参数 b 不使用print(c);}
}

三、ref 返回值

​ 使用 ref 修饰临时变量和函数返回值,可以让赋值变为引用传递,即 C++ 中的 & 引用类型。
​ 作用:用于修改数据对象中的某些值类型变量。

(一)引用变量

public struct TestRef
{public int atk;public int def;public TestRef(int atk, int def) {this.atk = atk;this.def = def;}
}public class Lesson8 : MonoBehaviour
{void Start() {int     testI  = 100;ref int testI2 = ref testI; // testI2 与 testI 指向同一块数据内存testI2 = 900;print(testI);               // "900"TestRef     r  = new TestRef(5, 5);ref TestRef r2 = ref r;     // r2 与 r 指向同一个类r2.atk = 10;print(r.atk);               // "10"}
}

(二)函数返回值

public class Lesson8 : MonoBehaviour
{// 寻找数组中是否存在 number 成员,并返回其引用// 若找不到,则返回第一个成员的引用public ref int FindNumber(int[] numbers, int number) {for (int i = 0; i < numbers.Length; i++) {if (numbers[i] == number)return ref numbers[i];}return ref numbers[0];}void Start() {int[]   numbers = new int[] { 1, 2, 3, 45, 5, 65, 4532, 12 };ref int number  = ref FindNumber(numbers, 5); // 获取数组中第 5 个成员的引用number = 98765;print(numbers[4]); // "98765"}
}

四、本地函数

​ 在函数内部可以声明一个临时函数。
​ 注意:

  • 本地函数只能在声明该函数的函数内部使用
  • 本地函数可以使用声明自己的函数中的变量

​ 作用:方便逻辑的封装
​ 建议:把本地函数写在主要逻辑的后面,方便代码的查看

public int TestTst(int i) {bool b = false;i += 10;Calc(); // 执行本地函数print(b);return i;// 本地函数void Calc() {i += 10;b =  true;}
}

五、抛出表达式

​ 抛出表达式,就是指抛出一个错误。一般的使用方式为:throw 后面 new 一个异常类

​ 异常基类:Exception

表1 C#自带异常类
异常类说明
IndexOutOfRangeException当一个数组的下标超出范围时运行时引发
NullReferenceException当一个空对象被引用时运行时引发
ArgumentException方法的参数是非法的
ArgumentNullException一个空参数传递给方法,该方法不能接受该参数
ArgumentOutOfRangeException参数值超出范围
SystemException其他用户可处理的异常的基本类
OutOfMemoryException内存空间不够
StackOverflowException堆栈溢出
ArithmeticException出现算术上溢或者下溢
ArrayTypeMismatchException试图在数组中存储错误类型的对象
BadImageFormatException图形的格式错误
DivideByZeroException除零异常
DllNotFoundException找不到引用的 DLL
FormatException参数格式错误
InvalidCastException使用无效的类
InvalidOperationException方法的调用时间错误
MethodAccessException试图访问思友或者受保护的方法
MissingMemberException访问一个无效版本的 DLL
NotFiniteNumberException对象不是一个有效的成员
NotSupportedException调用的方法在类中没有实现
InvalidOperationException当对方法的调用对对象的当前状态无效时,由某些方法引发

​ 在 C# 7 中,可以在更多的表达式中进行错误抛出。
​ 好处:更节约代码量。

(一)空合并操作符后用 throw

private void InitInfo(string str) => jsonStr = str ?? throw new ArgumentNullException(nameof(str));

(二)三目运算符后面用 throw

private string GetInfo(string str, int index) {string[] strs = str.Split(',');return strs.Length > index ? strs[index] : throw new IndexOutOfRangeException();
}

(三)=> 符号后面直接 throw

Action action = () => throw new Exception("错了,不准用这个委托");

六、元组

​ 多个值的集合,相当于是一种快速构建数据结构类的方式。

​ 在函数存在多返回值时可以使用元组 (返回值 1 类型, 返回值 2 类型, ....) 来声明返回值;

​ 在函数内部返回具体内容时通过 (返回值 1, 返回值 2, ....) 进行返回。
​ 主要作用:提升开发效率,更方便的处理多返回值等需要用到多个值时的需求。

(一)无变量名元组

(int, float, bool, string) yz = (1, 5.5f, true, "123");print(yz.Item1); // "1"
print(yz.Item2); // "5.5" 
print(yz.Item3); // "true"
print(yz.Item4); // "123"

(二)有变量名元组

(int i, float f, bool b, string str) yz2 = (1, 5.5f, true, "123");print(yz2.i);   // "1"
print(yz2.f);   // "5.5" 
print(yz2.b);   // "true"
print(yz2.str); // "123"

(三)元组的比较

​ 元组可以进行等于和不等于的判断:

  • 数量相同才比较;
  • 类型相同才比较;
  • 每一个参数的比较通过 == 比较,都是 true 才认为两个元组相等。
print(yz == yz2); // "true"

(四)成员变量

​ 元组不仅可以作为临时变量,成员变量也是可以的:

public class Lesson9 : MonoBehaviour
{public (int, float) yz;void Start() {print(this.yz.Item1); // "0",未初始化,int 默认值为 0}
}

(五)元组解构

​ 把多返回值元组拆分到不同的变量中:

public class Lesson9 : MonoBehaviour
{private (string str, int i, float f) GetInfo() {return ("123", 2, 5.5f);}void Start() {int    myInt;string myStr;float  myFloat;(myStr, myInt, myFloat) = GetInfo(); // 解构print(myStr);   // "123"print(myInt);   // "2"print(myFloat); // "5.5"}
}

​ 可以简化写成:

(string myStr, int myInt, float myFloat) = GetInfo();

​ 亦可以使用弃元:

(string ss, _, _) = GetInfo(); // 不使用参数 i 和 f
print(ss);

​ 字典中键的应用:

Dictionary<(int i, float f), string> dic = new Dictionary<(int i, float f), string>();
dic.Add((1, 2.5f), "123");if (dic.ContainsKey((1, 2.5f))) {print("存在相同的键");print(dic[(1, 2.5f)]);
}

七、模式匹配

​ 模式匹配是一种语法元素,可以测试一个值是否满足某种条件,并可以从值中提取信息。

​ 在 C# 7 中,模式匹配增强了两个现有的语言结构:

  1. is 表达式:可以在右侧写一个模式语法,而不仅仅是一个类型
  2. switch 语句中的 case

​ 主要作用:节约代码量,提高编程效率

(一)常量模式

(is 常量)

​ 用于判断输入值是否等于某个值。

object o = 1.5f;if (o is 1) {print("o是1");
}if (o is null) {print("o是null");
}

(二)类型模式

(is 类型 变量名、case 类型 变量名)

​ 用于判断输入值类型,如果类型相同,将输入值提取出来。

​ 判断某一个变量是否是某一个类型,如果满足会将该变量存入你申明的变量中。

​ 以前的写法:

if (o is int) {int i = (int) o;print(i);
}

​ 现在的写法:

if (o is int i) {print(i); // 不打印
}

​ switch 使用:

switch (o) {case int value:print("int:" + value);break;case float value:print("float:" + value); // "float:1.5"break;case null:print("null");break;default:break;
}

(三)var 模式

​ 用于将输入值放入与输入值相同类型的新变量中,相当于是将变量装入一个和自己类型一样的变量中。

if (o is var v) {print("v:" + v); // "v:1.5"
}

相关文章:

2023-08-15 Untiy进阶 C#知识补充6——C#7主要功能与语法

文章目录 一、字面值改进二、out 内部声明 / 弃元三、ref 返回值四、本地函数五、抛出表达式六、元组七、模式匹配 ​ 注意&#xff1a;在此仅提及 Unity 开发中会用到的一些功能和特性&#xff0c;对于不适合在 Unity 中使用的内容会忽略。 ​ C# 7 对应 Unity 版本&#xff1…...

logstash配置文件

input { kafka { topics > “xxxx” bootstrap_servers > “ip:port” auto_offset_reset > “xxxx” group_id > “xxxx” consumer_threads > 3 codec > “json” } } filter { grok { match > { “message” > ‘%{IP:client_ip} - - [%{HTTPDATE:…...

docker搭建lnmp(nginx+mysql57+php7.4)

docker搭建lnmp(nginxmysql57php7.4) 1. 准备工作 docker安装 $ sudo yum update $ sudo sudo yum install -y yum-utils device-mapper-persistent-data lvm2 $ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo $ sudo…...

专访 BlockPI:共建账户抽象未来的新一代 RPC 基础设施

在传统 RPC 服务板块上&#xff0c;开发者一直饱受故障风险、运行环境混乱等难题的折磨。实现 RPC 服务的去中心化&#xff0c;且保持成本优势和可扩展性&#xff0c;始终是区块链基础设施建设的重要命题之一。从 2018 年观察中心化 RPC 供应商服务现状开始&#xff0c;BlockPI…...

js fetch请求中断的几种方式

1、通过AbortController 这是官方标准手段&#xff0c;真正意义的阻止请求&#xff08;不支持ie&#xff09; 后端接口设置的两秒返回数据 function myFetch() {const controller new AbortController();const signal controller.signal;fetch(http://localhost:3000/aaa/…...

Python自动化实战之使用Selenium进行Web自动化详解

概要 为了完成一项重复的任务&#xff0c;你需要在网站上进行大量的点击和操作&#xff0c;每次都要浪费大量的时间和精力。Python的Selenium库就可以自动化完成这些任务。 在本篇文章中&#xff0c;我们将会介绍如何使用Python的Selenium库进行Web自动化&#xff0c;以及如何…...

“之江数据安全治理论坛”暨《浙江省汽车数据处理活动规定(专家建议稿)》研讨会顺利召开

研讨会主题 8月10日&#xff0c;“之江数据安全治理论坛”暨《浙江省汽车数据处理活动规定&#xff08;专家建议稿&#xff09;》研讨会在浙江大学计算机创新技术研究院举办。 本次研讨会的主题聚焦于“智能网联汽车的数据安全与数据合规”&#xff0c;邀请行业主管部门和数据…...

消息中间件面试题

异步发送(验证码、短信、邮件…) MYSQL和Redis&#xff0c;ES之间的数据同步 分布式事务 削峰填谷 RabbitMQ如何保证消息不丢失&#xff1f; 开启生产者确认机制&#xff0c;确保生产者的消息能到达队列 开启持久化功能&#xff0c;确保消息未消费前在队列中不会丢失 开启消费…...

麻辣烫数据可视化,麻辣烫市场将持续蓬勃发展

麻辣烫&#xff0c;这道源自中国的美食&#xff0c;早已成为人们生活中不可或缺的一部分。它独特的香辣口味&#xff0c;让人忍不住每每流连忘返。与人们的关系&#xff0c;简直如同挚友一般。每当寒冷的冬日或疲惫的时刻&#xff0c;麻辣烫总是悄然走进人们的心房&#xff0c;…...

大数据课程J1——Scala的概述

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Scala的特点; ⚪ 了解Scala的开发环境搭建; ⚪ 了解Scala的开发工具; 一、概述 1.简介 Scala既是面向对象的语言,也是面向函数的语言。scala可以为你在做大量代码重用和扩展是提…...

第二章:25+ Python 数据操作教程(第十三节NUMPY 教程与练习)

NumPy(“Numerical Python”或“Numeric Python”的缩写)是 Python 中对数组和矩阵进行快速数学计算的最基本的软件包之一。在处理多维数据时它也非常有用。集成C、C++和FORTRAN工具是一件幸事。它还提供了许多傅里叶变换 (FT) 和线性代数函数。 为什么使用 NumPy 而不是列…...

【Java面试】如果一个线程两次调用start(),会出现什么问题?

这个问题出自阿里p6岗位第一面的提问&#xff0c;你会回答吗&#xff1f; 在Java里面&#xff0c;一个线程只能调用一次start()方法&#xff0c;第二次调用会抛出IllegalThreadStateException异常。 一个线程本身是具备一个生命周期的。 在Java里面&#xff0c;线程的生命周…...

购买steam余额有风险吗?以及N种被红锁的情况

购买steam余额有风险吗&#xff1f;以及N种被红锁的情况 无论是打游戏的玩家&#xff0c;还是像我们这类靠倒卖装备赚钱的小商贩&#xff0c;都面临充值美金余额的问题&#xff0c;我们现在主要是找的专业充值渠道做代充。 最近我发现群里有极个别学员通过自己的方法找到了一…...

使用 BERT 进行文本分类 (02/3)

​ 一、说明 在使用BERT&#xff08;1&#xff09;进行文本分类中&#xff0c;我向您展示了一个BERT如何标记文本的示例。在下面的文章中&#xff0c;让我们更深入地研究是否可以使用 BERT 来预测文本是使用 PyTorch 传达积极还是消极的情绪。首先&#xff0c;我们需要准备数据…...

基于Hadoop的表级监管

现状 大数据平台中,采用hadoop的方式存储数据,hdfs本质上是文件系统,而文件系统对数据的监管能力有限,但是数据安全领域问题日渐凸显,现目前,大数据平台一般以分层结构进行授权,但是对于一线开发人员而言,是能够接触到整个大数据平台中的所有表的,那么如何实现这样一…...

【学习日记】【FreeRTOS】延时列表的实现

前言 本文在前面文章的基础上实现了延时列表&#xff0c;取消了 TCB 中的延时参数。 本文是对野火 RTOS 教程的笔记&#xff0c;融入了笔者的理解&#xff0c;代码大部分来自野火。 一、如何更高效地查找延时到期的任务 1. 朴素方式 在本文之前&#xff0c;我们使用了一种朴…...

​LeetCode解法汇总833. 字符串中的查找与替换

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 你会得到一…...

ide internal errors【bug】

ide internal errors【bug】 前言版权ide internal errors错误产生相关资源解决1解决2 设置虚拟内存最后 前言 2023-8-15 12:36:59 以下内容源自《【bug】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是h…...

阿里云与中国中医科学院合作,推动中医药行业数字化和智能化发展

据相关媒体消息&#xff0c;阿里云与中国中医科学院的合作旨在推动中医药行业的数字化和智能化发展。随着互联网的进步和相关政策的支持&#xff0c;中医药产业受到了国家的高度关注。这次合作将以“互联网 中医药”为载体&#xff0c;致力于推进中医药文化的传承和创新发展。…...

【Redis】Redis 的学习教程(五)之 SpringBoot 集成 Redis

在前几篇文章中&#xff0c;我们详细介绍了 Redis 的一些功能特性以及主流的 java 客户端 api 使用方法。 在当前流行的微服务以及分布式集群环境下&#xff0c;Redis 的使用场景可以说非常的广泛&#xff0c;能解决集群环境下系统中遇到的不少技术问题&#xff0c;在此列举几…...

github以及上传代码处理

最近在github上传代码的时候出现了&#xff1a; /video_parser# git push -u origin main Username for https://github.com: gtnyxxx Password for https://gtny2010github.com: remote: Support for password authentication was removed on August 13, 2021. remote: Plea…...

【PACS源码】认识PACS的架构和工作流程

&#xff08;一&#xff09;PACS系统的组成及架构 PACS系统的基本组成部分包括&#xff1a;数字影像采集、通讯和网络、医学影像存储、医学影像管理、各类工作站五个部分。 而目前PACS系统的软件架构选型上看&#xff0c;主要有C/S和B/S两种形式。 C/S架构&#xff0c;即Client…...

【C++】开源:跨平台Excel处理库-libxlsxwriter配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Excel处理库-libxlsxwriter配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&…...

前端-轮询

一、轮询定义 轮询是指在一定的时间间隔内&#xff0c;定时向服务器发送请求&#xff0c;获取最新数据的过程。轮询通常用于从服务器获取实时更新的数据。 二、轮询和长轮询区别 轮询是在固定的时间间隔内向服务器发送请求&#xff0c;即使服务器没有数据更新也会继续发送请求…...

Python “贪吃蛇”游戏,在不断改进中学习pygame编程

目录 前言 改进过程一 增加提示信息 原版帮助摘要 pygame.draw pygame.font class Rect class Surface 改进过程二 增加显示得分 改进过程三 增加背景景乐 增加提示音效 音乐切换 静音切换 mixer.music.play 注意事项 原版帮助摘要 pygame.mixer pygame.mix…...

Linux网络编程_Ubuntu环境配置安装

文章目录&#xff1a; 一&#xff1a;基于vmware虚拟机安装Ubuntu系统&#xff08;虚拟机&#xff09; 1.vmware下载 2.Ubuntu系统下载 3.配置 3.1 无法连网&#xff1a;这里很容易出现问题 3.2 更换国内源 3.3 无法屏幕适配全屏 3.4 汉化 二&#xff1a;直接安装Ubun…...

gradle java插件

gradle java插件 1. 由来 Gradle是一种现代化的构建工具&#xff0c;Java插件是Gradle官方提供的插件&#xff0c;用于支持和管理Java项目的构建过程。 2. 常见五种示例和说明 示例1&#xff1a;配置源代码目录和编译选项 plugins {id java }sourceSets {main {java {srcD…...

神经网络基础-神经网络补充概念-48-rmsprop

概念## 标题 RMSProp&#xff08;Root Mean Square Propagation&#xff09;是一种优化算法&#xff0c;用于在训练神经网络等机器学习模型时自适应地调整学习率&#xff0c;以加速收敛并提高性能。RMSProp可以有效地处理不同特征尺度和梯度变化&#xff0c;对于处理稀疏数据和…...

分析Flink,源和算子并行度不一致时,运行一段时间后,看似不再继续消费的问题,提供解决思路。

文章目录 背景分析 问题来了比较一开始的情况解决方式 背景 之前有分析过一次类似问题&#xff0c;最终结论是在keyby之后&#xff0c;其中有一个key数量特别庞大&#xff0c;导致对应的subtask压力过大&#xff0c;进而使得整个job不再继续运作。在这个问题解决之后&#xff…...

PyTorch训练深度卷积生成对抗网络DCGAN

文章目录 DCGAN介绍代码结果参考 DCGAN介绍 将CNN和GAN结合起来&#xff0c;把监督学习和无监督学习结合起来。具体解释可以参见 深度卷积对抗生成网络(DCGAN) DCGAN的生成器结构&#xff1a; 图片来源&#xff1a;https://arxiv.org/abs/1511.06434 代码 model.py impor…...

Spring-4-掌握Spring事务传播机制

今日目标 能够掌握Spring事务配置 Spring事务管理 1 Spring事务简介【重点】 1.1 Spring事务作用 事务作用&#xff1a;在数据层保障一系列的数据库操作同成功同失败 Spring事务作用&#xff1a;在数据层或业务层保障一系列的数据库操作同成功同失败 1.2 案例分析Spring…...

[PyTorch][chapter 49][创建自己的数据集 1]

前言&#xff1a; 后面几章主要利用DataSet 创建自己的数据集&#xff0c;实现建模&#xff0c; 训练&#xff0c;迁移等功能。 目录: pokemon 数据集深度学习工程步骤 一 pokemon 数据集介绍 1.1 pokemon: 数据集地址&#xff1a; 百度网盘路径: https://pan.baidu.com/s/1…...

中间件(二)dubbo负载均衡介绍

一、负载均衡概述 支持轮询、随机、一致性hash和最小活跃数等。 1、轮询 ① sequences&#xff1a;内部的序列计数器 ② 服务器接口方法权重一样&#xff1a;&#xff08;sequences1&#xff09;%服务器的数量&#xff08;决定调用&#xff09;哪个服务器的服务。 ③ 服务器…...

springboot异步文件上传获取输入流提示找不到文件java.io.FileNotFoundException

springboot上传文件&#xff0c;使用异步操作处理上传的文件数据&#xff0c;出现异常如下&#xff1a; 这个是在异步之后使用传过来的MultipartFile对象尝试调用getInputStream方法发生的异常。 java.io.FileNotFoundException: C:\Users\Administrator\AppData\Local\Temp\to…...

安装jenkins-cli

1、要在 Linux 操作系统上安装 jcli curl -L https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-linux-amd64.tar.gz|tar xzv sudo mv jcli /usr/local/bin/ 在用户根目录下&#xff0c;增加 jcli 的配置文件&#xff1a; jcli config gen -ifalse …...

linux通过NC工具启动临时端口监听

1.安装nc工具 yum install nc -y2. 启动监听指定端口 #例如监听8080端口 nc -lk 8080#后台监听 nc -lk 8080 &3. 验证 #通过另外一台网络能通的机器&#xff0c;telnet 该机器ip 监听端口能通&#xff0c;并且能接手数据 telnet 192.xxx.xxx.xx 8080...

开源语音聊天软件Mumble

网友 大气 告诉我&#xff0c;Openblocks在国内还有个版本叫 码匠&#xff0c;更贴合国内软件开发的需求&#xff0c;如接入了国内常用的身份认证&#xff0c;接入了国内的数据库和云服务&#xff0c;也对小程序、企微 sdk 等场景做了适配。 在 https://majiang.co/docs/docke…...

JDK 1.6与JDK 1.8的区别

ArrayList使用默认的构造方式实例 jdk1.6默认初始值为10jdk1.8为0,第一次放入值才初始化&#xff0c;属于懒加载 Hashmap底层 jdk1.6与jdk1.8都是数组链表 jdk1.8是链表超过8时&#xff0c;自动转为红黑树 静态方式不同 jdk1.6是先初始化static后执行main方法。 jdk1.8是懒加…...

单片机实训报告

这周我们进行了单片机实训&#xff0c;一周中我们通过七个项目1&#xff1a;P1 口输入/输出 2&#xff1a;继电器控制 3 音频控制 4&#xff1a;子程序设计 5&#xff1a;字符碰头程序设计 6&#xff1a;外部中断 7&#xff1a; 急救车与交通信号灯&#xff0c;练习编写了子程…...

【编织时空四:探究顺序表与链表的数据之旅】

本章重点 链表的分类 带头双向循环链表接口实现 顺序表和链表的区别 缓存利用率参考存储体系结构 以及 局部原理性。 一、链表的分类 实际中链表的结构非常多样&#xff0c;以下情况组合起来就有8种链表结构&#xff1a; 1. 单向或者双向 2. 带头或者不带头 3. 循环或者非…...

PHP8的字符串操作1-PHP8知识详解

字符串是php中最重要的数据之一&#xff0c;字符串的操作在PHP编程占有重要的地位。在使用PHP语言开发web项目的过程中&#xff0c;为了实现某些功能&#xff0c;经常需要对某些字符串进行特殊的处理&#xff0c;比如字符串的格式化、字符串的连接与分割、字符串的比较、查找等…...

电脑提示msvcp140.dll丢失的解决方法,dll组件怎么处理

Windows系统有时在打开游戏或者软件时&#xff0c; 系统会弹窗提示缺少“msvcp140.dll.dll”文件 或者类似错误提示怎么办&#xff1f; 错误背景&#xff1a; msvcp140.dll是Microsoft Visual C Redistributable Package中的一个动态链接库文件&#xff0c;它在运行软件时提…...

stable diffusion基础

整合包下载&#xff1a;秋叶大佬 【AI绘画8月最新】Stable Diffusion整合包v4.2发布&#xff01; 参照&#xff1a;基础04】目前全网最贴心的Lora基础知识教程&#xff01; VAE 作用&#xff1a;滤镜微调 VAE下载地址&#xff1a;C站&#xff08;https://civitai.com/models…...

Greiner–Hormann裁剪算法深度探索:C++实现与应用案例

介绍 在计算几何中&#xff0c;裁剪是一个核心的主题。特别是&#xff0c;多边形裁剪已经被广泛地应用于计算机图形学&#xff0c;地理信息系统和许多其他领域。Greiner-Hormann裁剪算法是其中之一&#xff0c;提供了一个高效的方式来计算两个多边形的交集、并集等。在本文中&…...

Automatically Correcting Large Language Models

本文是大模型相关领域的系列文章&#xff0c;针对《Automatically Correcting Large Language Models: Surveying the landscape of diverse self-correction strategies》的翻译。 自动更正大型语言模型&#xff1a;综述各种自我更正策略的前景 摘要1 引言2 自动反馈校正LLM的…...

【学习FreeRTOS】第8章——FreeRTOS列表和列表项

1.列表和列表项的简介 列表是 FreeRTOS 中的一个数据结构&#xff0c;概念上和链表有点类似&#xff0c;列表被用来跟踪 FreeRTOS中的任务。列表项就是存放在列表中的项目。 列表相当于链表&#xff0c;列表项相当于节点&#xff0c;FreeRTOS 中的列表是一个双向环形链表列表的…...

分布式图数据库 NebulaGraph v3.6.0 正式发布,强化全文索引能力

本次 v3.6.0 版本&#xff0c;主要强化全文索引能力&#xff0c;以及优化部分场景下的 MATCH 性能。 强化 强化增强全文索引功能&#xff0c;具体 pr 参见&#xff1a;#5567、#5575、#5577、#5580、#5584、#5587 优化 支持使用 MATCH 子句检索 VID 或属性索引时使用变量&am…...

在 ubuntu 18.04 上使用源码升级 OpenSSH_7.6p1到 OpenSSH_9.3p1

1、检查系统已安装的当前 SSH 版本 使用命令 ssh -V 查看当前 ssh 版本&#xff0c;输出如下&#xff1a; OpenSSH_7.6p1 Ubuntu-4ubuntu0.7, OpenSSL 1.0.2n 7 Dec 20172、安装依赖&#xff0c;依次执行以下命令 sudo apt update sudo apt install build-essential zlib1g…...

python中可以处理word文档的模块:docx模块

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 话不多说&#xff0c;直接开搞&#xff0c;如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 一.docx模块 Python可以利用python-docx模块处理word文档&#xff0c;处理方式是面向对象的。 也就是说python-docx模块…...

TikTok或将于8月底关闭半闭环、速卖通或将推出“半托管”模式

《出海周报》是运营坛为外贸企业主和外贸人独家打造的重要资讯栏目&#xff0c;聚焦企业出海、海外市场动态、海外监管政策等方面&#xff0c;以简捷的方式&#xff0c;提升读者获取资讯的效率。 接下来运营坛为大家带来第15期出海周报&#xff0c;快来看看这周国内外市场发生了…...