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

玩转C#函数:参数、返回值与游戏中的攻击逻辑封装

Langchain系列文章目录

01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南
02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖
03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南
04-玩转 LangChain:从文档加载到高效问答系统构建的全程实战
05-玩转 LangChain:深度评估问答系统的三种高效方法(示例生成、手动评估与LLM辅助评估)
06-从 0 到 1 掌握 LangChain Agents:自定义工具 + LLM 打造智能工作流!
07-【深度解析】从GPT-1到GPT-4:ChatGPT背后的核心原理全揭秘

PyTorch系列文章目录

Python系列文章目录

C#系列文章目录

01-C#与游戏开发的初次见面:从零开始的Unity之旅
02-C#入门:从变量与数据类型开始你的游戏开发之旅
03-C#运算符与表达式:从入门到游戏伤害计算实践
04-从零开始学C#:用if-else和switch打造智能游戏逻辑
05-掌握C#循环:for、while、break与continue详解及游戏案例
06-玩转C#函数:参数、返回值与游戏中的攻击逻辑封装


文章目录

  • Langchain系列文章目录
  • PyTorch系列文章目录
  • Python系列文章目录
  • C#系列文章目录
  • 前言
  • 一、方法的定义与调用
    • 1.1 什么是方法?
      • 1.1.1 方法的基本结构
      • 1.1.2 如何调用方法?
    • 1.2 为什么需要方法?
  • 二、参数与返回值
    • 2.1 参数:让方法更灵活
      • 2.1.1 定义参数
      • 2.1.2 传递参数
      • 2.1.3 常见问题:参数未赋值
    • 2.2 返回值:方法的“输出”
      • 2.2.1 定义返回值
      • 2.2.2 接收返回值
      • 2.2.3 常见问题:忘记return
    • 2.3 参数与返回值的结合
      • 2.3.1 游戏案例:计算伤害
  • 三、游戏应用:封装玩家的攻击逻辑
    • 3.1 场景描述
    • 3.2 实现步骤
      • 3.2.1 定义攻击方法
      • 3.2.2 调用攻击方法
      • 3.2.3 扩展:添加动画和音效
    • 3.3 方法的优势
      • 3.3.1 可视化:方法调用流程
  • 四、总结


前言

在C#编程中,方法(也叫函数)是组织代码的核心工具。无论是编写简单的控制台程序,还是开发复杂的Unity游戏,方法都能帮助你将代码拆分成清晰、可复用的模块。本文将带你从零开始,逐步掌握C#方法的基础知识,包括如何定义和调用方法、使用参数与返回值,以及在游戏开发中通过方法封装玩家的攻击逻辑。

无论你是刚接触C#的初学者,还是希望在游戏开发中提升代码质量的进阶开发者,这篇文章都将为你提供通俗易懂的解释、实用的代码示例和清晰的应用场景。让我们一起探索方法的力量,用它打造高效、优雅的代码吧!


一、方法的定义与调用

1.1 什么是方法?

方法是C#中一段可以重复使用的代码块,封装了特定的功能。想象一下,方法就像一个“指令按钮”,你按下它(调用),它就会执行预设的任务。

1.1.1 方法的基本结构

一个典型的方法包含以下几个部分:

  • 返回类型:方法完成后返回的数据类型,比如intstring,如果不返回任何值,则用void
  • 方法名:给方法取一个有意义的名字,比如SayHello
  • 参数列表:方法需要的输入数据,写在括号()中,可以为空。
  • 方法体:具体的执行逻辑,写在花括号{}中。

来看一个简单示例:

void SayHello()
{Console.WriteLine("Hello, World!");
}
  • void:表示方法不返回任何值。
  • SayHello:方法名,描述了它的功能。
  • ():没有参数。
  • {}:方法体,输出一句问候语。

1.1.2 如何调用方法?

定义好方法后,通过方法名加括号来“调用”它,让它执行任务:

SayHello();  // 输出: Hello, World!

调用后,控制台会显示“Hello, World!”。简单吧?这就是方法的基本用法。


1.2 为什么需要方法?

方法不仅仅是为了少写代码,它还有以下好处:

  • 模块化:把大任务拆成小块,代码更清晰。
  • 可复用性:一次定义,多次调用,省时省力。
  • 可读性:用有意义的方法名,让代码像故事一样好懂。
  • 易调试:问题出在某个方法里,直接检查那块代码就行。

在游戏开发中,方法尤其重要。比如,玩家的移动、攻击、跳跃都可以用方法封装,让游戏逻辑更整洁。


二、参数与返回值

2.1 参数:让方法更灵活

参数是方法接收外部数据的方式。通过参数,同一个方法可以根据不同输入执行不同操作。

2.1.1 定义参数

在方法括号里声明参数,指定类型和名称。多个参数用逗号分隔:

void Greet(string name)
{Console.WriteLine("Hello, " + name + "!");
}

这里name是一个string类型的参数。

2.1.2 传递参数

调用时,传入具体值(称为“实参”):

Greet("Alice");  // 输出: Hello, Alice!
Greet("Bob");    // 输出: Hello, Bob!

通过不同的参数,方法输出了不同的问候语。

2.1.3 常见问题:参数未赋值

如果忘记传参数,编译器会报错。例如:

Greet();  // 错误:缺少参数

解决办法:检查方法定义,确保调用时提供了所有必需的参数。


2.2 返回值:方法的“输出”

返回值是方法执行后交给调用者的结果。通过返回值,方法可以传递数据给外部使用。

2.2.1 定义返回值

用返回类型替代void,并在方法体中使用return语句返回结果:

int Add(int a, int b)
{return a + b;  // 返回两数之和
}
  • int:返回类型,表示返回整数。
  • return:将结果返回给调用者。

2.2.2 接收返回值

调用时,可以用变量接收返回值:

int result = Add(3, 5);  // result = 8
Console.WriteLine("3 + 5 = " + result);

也可以直接使用:

Console.WriteLine("3 + 5 = " + Add(3, 5));  // 输出: 3 + 5 = 8

2.2.3 常见问题:忘记return

如果方法有返回类型却没写return,会报错:

int Add(int a, int b)
{a + b;  // 错误:缺少return
}

解决办法:确保方法体中用return返回正确的值。


2.3 参数与返回值的结合

在实际开发中,参数和返回值通常一起使用,完成更复杂的功能。

2.3.1 游戏案例:计算伤害

假设我们在开发游戏,需要计算玩家对敌人的伤害,基于攻击力和防御力:

int CalculateDamage(int attack, int defense)
{int damage = attack - defense;  // 计算伤害if (damage < 0)  // 伤害不能为负数{damage = 0;}return damage;  // 返回最终伤害
}

调用示例:

int playerAttack = 10;
int enemyDefense = 3;
int damage = CalculateDamage(playerAttack, enemyDefense);  // damage = 7
Console.WriteLine("造成的伤害: " + damage);

这个方法用参数接收输入,用返回值输出结果,非常实用。


三、游戏应用:封装玩家的攻击逻辑

方法在游戏开发中大放异彩。接下来,我们通过一个实际案例——封装玩家的攻击逻辑,展示方法的强大作用。

3.1 场景描述

假设我们在做一个2D动作游戏,玩家按下攻击键时,需要:

  • 计算对敌人的伤害。
  • 显示伤害值。
  • 可能触发动画或音效。

3.2 实现步骤

3.2.1 定义攻击方法

创建一个Attack方法,接受敌人的防御力作为参数,返回伤害值:

int Attack(int enemyDefense)
{int playerAttack = 10;  // 玩家攻击力int damage = playerAttack - enemyDefense;if (damage < 0){damage = 0;}return damage;
}

3.2.2 调用攻击方法

在游戏逻辑中调用:

int enemyDefense = 2;
int damage = Attack(enemyDefense);  // damage = 8
Console.WriteLine("玩家攻击,造成 " + damage + " 点伤害");

3.2.3 扩展:添加动画和音效

实际游戏中,攻击不只是计算伤害。我们可以扩展Attack方法:

void Attack(int enemyDefense)
{// 播放攻击动画(伪代码)PlayAnimation("Attack");// 计算伤害int damage = CalculateDamage(10, enemyDefense);// 显示伤害Console.WriteLine("玩家攻击,造成 " + damage + " 点伤害");// 播放音效(伪代码)PlaySound("Hit");
}

这里假设PlayAnimationPlaySound是Unity中的方法,具体实现依赖游戏引擎。


3.3 方法的优势

通过封装攻击逻辑,我们获得了:

  • 模块化:攻击功能独立,易于修改。
  • 可复用性:多个角色可以复用Attack方法。
  • 可读性:方法名直观,逻辑一目了然。

3.3.1 可视化:方法调用流程

以下是用Mermaid生成的流程图,展示Attack方法的执行过程:

玩家按下攻击键
调用Attack方法
播放攻击动画
计算伤害
显示伤害值
播放音效
结束

这个流程图清晰展示了方法的执行步骤,增强了理解。


四、总结

通过本文,你应该掌握了以下内容:

  • 方法的定义与调用:学会如何创建和使用方法,组织代码。
  • 参数与返回值:理解如何通过参数输入数据,用返回值输出结果。
  • 游戏应用:通过封装攻击逻辑,体会方法在游戏开发中的实用性。

方法是C#编程的基础,也是游戏开发中的利器。希望你能将这些知识应用到自己的项目中,编写出更高效、更优雅的代码!如果有疑问,欢迎留言交流。


相关文章:

玩转C#函数:参数、返回值与游戏中的攻击逻辑封装

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

简易shell

自主实现shell done&#xff0c;故意写成&#xff0c;表示先赋值&#xff0c;再判断&#xff0c;分割之后&#xff0c;strtok会返回NULL&#xff0c;刚好让gArgv最后一个元素是NULL&#xff0c;并且while判断结束 Makefile 1 myshell:myshell.c …...

注意力机制,本质上是在做什么?

本文以自注意机制为例&#xff0c;输入一个4*4的矩阵 如下&#xff1a; input_datatorch.tensor([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16] ],dtypetorch.float) 得到Q和K的转置如下。 此时&#xff0c;计算QK^T ,得到如下结果 第一行第一个位置就是第一条样本和第…...

【机器学习-模型评估】

“评估”已建立的模型 在进行回归和分类时&#xff0c;为了进行预测&#xff0c;定义了预测函数fθ(x) 然后根据训练数据求出了预测函数的参数θ(即对目标函数进行微分&#xff0c;然后求出参数更新表达式的操作) 之前求出参数更新表达式之后就结束了。但是&#xff0c;其实我…...

19681 01背包

19681 01背包 ⭐️难度&#xff1a;中等 &#x1f31f;考点&#xff1a;动态规划、01背包 &#x1f4d6; &#x1f4da; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public class Main {static int N 10001…...

Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量回归预测

Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量回归预测 目录 Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量回归预…...

基于CAMEL 的Workforce 实现多智能体协同工作系统

文章目录 一、workforce 简介1.架构设计2.通信机制 二、workforce 工作流程图示例1.用户角色2.工作流程 三、workforce 中重要函数说明1.__init__函数2.add_single_agent_worker 函数3.add_role_playing_worker 函数4.add_workforce 函数 四、基于workforce实现多智能体协调&am…...

炫酷的3D按钮效果实现 - CSS3高级特性应用

炫酷的3D按钮效果实现 - CSS3高级特性应用 这里写目录标题 炫酷的3D按钮效果实现 - CSS3高级特性应用项目介绍核心技术实现1. 基础结构设计2. 视觉效果实现2.1 背景渐变2.2 立体感营造 3. 交互动效设计3.1 悬停效果3.2 按压效果 技术要点分析1. 深度层次感2. 动画过渡3. 性能优…...

AI视频是否会影响原创价值

AI视频是否会影响原创价值 AI视频带来全民创意对原创内容的影响 随着AI技术的发展&#xff0c;AI视频技术在视频领域的影响也逐渐凸显&#xff0c;从自动剪辑、特效生成到基于文本或语音自动生成视频内容&#xff0c;这一系列的进步极大地降低了视频制作的技术门槛与成本。这种…...

代码随想录刷题day50|(回溯算法篇)131.分割回文串▲

目录 一、回溯算法基础知识 二、分割回文串思路 2.1 如何切割 2.2 判断回文 2.3 回溯三部曲 2.4 其他问题 三、相关算法题目 四、总结 一、回溯算法基础知识 详见&#xff1a;代码随想录刷题day46|&#xff08;回溯算法篇&#xff09;77.组合-CSDN博客 二、分割回文…...

SpringCloud 学习笔记3(OpenFeign)

OpenFeign 微服务之间的通信方式&#xff0c;通常有两种&#xff1a;RPC 和 HTTP。 简言之&#xff0c;RPC 就是像调用本地方法一样调用远程方法。 在 SpringCloud 中&#xff0c;默认是使用 HTTP 来进行微服务的通信&#xff0c;最常用的实现形式有两种&#xff1a; RestTem…...

Python与区块链隐私保护技术:如何在去中心化世界中保障数据安全

Python与区块链隐私保护技术:如何在去中心化世界中保障数据安全 在区块链世界里,透明性和不可篡改性是两大核心优势,但这也带来了一个悖论——如何在公开账本的同时保障用户隐私?如果你的交易记录对所有人可见,如何防止敏感信息泄露? Python 作为区块链开发中最受欢迎的…...

基于32单片机的无人机直流电机闭环调速系统设计

标题:基于32单片机的无人机直流电机闭环调速系统设计 内容:1.摘要 本文针对无人机直流电机调速需求&#xff0c;设计了基于32单片机的无人机直流电机闭环调速系统。背景在于无人机应用场景不断拓展&#xff0c;对电机调速精度和稳定性要求日益提高。目的是开发一套高精度、响应…...

QT 图表(拆线图,栏状图,饼状图 ,动态图表)

效果 折线图 // 创建折线数据系列// 创建折线系列QLineSeries *series new QLineSeries;// series->append(0, 6);// series->append(2, 4);// series->append(3, 8);// 创建图表并添加系列QChart *chart new QChart;chart->addSeries(series);chart->setTit…...

预测性维护:Ubuntu边缘计算机如何降低电梯故障率

在现代城市中&#xff0c;电梯作为垂直交通的重要工具&#xff0c;其运行状态直接关系到人们的出行安全和效率。传统的电梯监控系统往往依赖于中心化的数据处理&#xff0c;存在响应慢、数据量大、实时性差等问题。而边缘协议网关&#xff08;Edge Protocol Gateway&#xff09…...

MyBatis plus详解

核心功能 代码生成器 它能够依据数据库表结构&#xff0c;自动生成涵盖实体类、Mapper 接口、Mapper XML 文件、Service 接口与实现类等在内的基础代码。开发人员只需简单配置数据库连接信息、表名以及生成代码的相关参数&#xff0c;即可快速生成符合项目规范的基础代码&…...

【数据挖掘】数据预处理——以鸢尾花数据集为例

数据预处理——以鸢尾花数据集为例 一、实验手册&#xff08;一&#xff09;实验目的&#xff08;二&#xff09;实验原理&#xff08;三&#xff09;实验环境&#xff08;四&#xff09;实验步骤&#xff08;五&#xff09;实验报告要求 二、案例代码&#xff08;以鸢尾花数据…...

根据文件名称查询文件所在位置

在 Linux 中&#xff0c;根据文件名称查询文件所在位置主要通过命令行工具实现&#xff0c;以下是几种常用方法&#xff1a; --- ### **1. 使用 find 命令&#xff08;最灵活&#xff09;** find 命令可以递归搜索指定目录下的文件&#xff0c;支持按名称、类型、时间等条件过…...

记一次wsl2+docker无法运行的经历

前情提要 由于某个大创项目的需要和对猫娘机器人的迫切渴求&#xff08;bushi 需要在电脑里面安装docker desktop。由于电脑里面安装了wsl2环境 因此决定使用wsl2dockerdesktop的方式配置docker 遇到的问题 在像往常一样安装docker desktop并且启动时 提示错误&#xff1a; …...

XSS介绍通关XSS-Labs靶场

目录 XSS XSS的类型 1.存储型XSS&#xff08;PXSS&#xff09;&#xff1a; 2. 反射型XSS&#xff08;N-PXSS&#xff09;&#xff1a; 3. DOM型XSS&#xff1a; 4. 突变型XSS&#xff08;mXSS&#xff09;&#xff1a; 5. 通用型XSS&#xff08;UXSS&#xff09;&#x…...

枚举的定义及其使用

在Java中&#xff0c;enum&#xff08;枚举&#xff09;是一个特殊的类&#xff0c;用于表示一组常量。enum类型在Java中提供了一种类型安全的方式来定义常量&#xff0c;相比传统的常量&#xff08;如public static final变量&#xff09;&#xff0c;它更加简洁、类型安全&am…...

[特殊字符][特殊字符][特殊字符][特殊字符][特殊字符][特殊字符]壁紙 流光染墨,碎影入梦

#Cosplay #&#x1f9da;‍♀️Bangni邦尼&#x1f430;. #&#x1f4f7; 穹妹 Set.01 #后期圈小程序 琼枝低垂&#xff0c;霜花浸透夜色&#xff0c;风起时&#xff0c;微光轻拂檐角&#xff0c;洒落一地星辉。远山隐于烟岚&#xff0c;唯余一抹青黛&#xff0c;勾勒出天光水…...

996引擎-接口测试:消息Tips

996引擎-接口测试:消息Tips 发送视野内广播消息 sendrefluamsg发送聊天框消息 sendmsg发送地图消息 sendmapmsg打印消息到控制台 release_print发送自定义颜色的文字信息 guildnoticemsg测试NPC参考资料发送视野内广播消息 sendrefluamsg function npc_test_onclick1(player)-…...

Redis设计与实现-底层实现

Redis底层实现 1、事件1.1 文件事件1.2 时间事件1.3 事件调度 2、Redis客户端2.1 客户端的相关属性2.2 客户端的创建与关闭2.2.1 普通客户端的创建2.2.2 普通客户端的关闭2.2.3 AOF的伪客户端2.2.4 Lua脚本的伪客户端 3、Redis服务端3.1 命令请求的执行过程3.1.1 客户端发送命令…...

acwing1295. X的因子链

题目链接&#xff1a;1295. X的因子链 - AcWing题库 算法&#xff1a;数论线性筛法求素数 x如果想要尽可能多的分为几个因子&#xff0c;那么就应该分成素数&#xff0c;因为如果是合数说明还能分。 题目要求求出①这段序列的最大长度和②最大长度序列的个数 最大长度&#x…...

练习-班级活动(map存储键值对)

问题描述 小明的老师准备组织一次班级活动。班上一共有 n 名 (n 为偶数) 同学&#xff0c;老师想把所有的同学进行分组&#xff0c;每两名同学一组。为了公平&#xff0c;老师给每名同学随机分配了一个 n 以内的正整数作为 id&#xff0c;第 i 名同学的 id 为 ai​。 老师希望…...

34-三数之和

给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 方法一&…...

Excel online开始支持Copilot高级数据分析:Python提供强大的数据见解

前文讲过Excel中的copilot可以直接调用Python进行高级数据分析&#xff1a; Copilot&#xff1a;Excel中的Python高级分析来了 Python in Excel高级分析&#xff1a;一键RFM分析 超越DeepSeek&#xff1a;Copilot in Excel高级数据分析原生支持Python无需安装软件 零代码、…...

【数据结构】kmp算法介绍+模板代码

目录 1.kmp算法介绍 2.应用场景 3.KMP与暴力算法比较 4.模板代码 KMP算法是一种高效的字符串匹配算法&#xff0c;用于在文本串中快速查找模式串的所有出现位置。其核心思想是通过预处理模式串&#xff0c;避免在匹配失败时进行不必要的回溯&#xff0c;从而将时间复杂度优…...

python关键字汇总

文章目录 1. 变量与类型相关2. 控制流相关3. 函数与类相关4. 异常处理相关5. 模块相关6. 其他 在 Python 3 里有 35 个关键字&#xff0c;它们各自具备特定的用途与意义 1. 变量与类型相关 True、False 意义&#xff1a;布尔类型的常量&#xff0c;分别代表逻辑真与逻辑假。示…...

六十天前端强化训练之第二十五天之组件生命周期大师级详解(Vue3 Composition API 版)

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗&#xff0c;谢谢大佬&#xff01; 目录 一、生命周期核心知识 1.1 生命周期全景图 1.2 生命周期钩子详解 1.2.1 初始化阶段 1.2.2 挂载阶段 1.2.3 更新阶段 1.2.4 卸载阶段 1.3 生命周期执行顺序 1.4 父子组…...

油候插件、idea、VsCode插件推荐(自用)

开发软件&#xff1a; 之前的文章&#xff1a; 开发必装最实用工具软件与网站 推荐一下我使用的开发工具 目前在用的 油候插件 AC-baidu-重定向优化百度搜狗谷歌必应搜索_favicon_双列 让查询变成多列&#xff0c;而且可以流式翻页 Github 增强 - 高速下载 github下载 TimerHo…...

R语言基于ggscitable包复现一篇3.5分的文章的连续变量交互效应(交互作用)的可视化图

交互作用效应(p for Interaction)在SCI文章中可以算是一个必杀技&#xff0c;几乎在高分的SCI中必出现&#xff0c;因为把人群分为亚组后再进行统计可以增强文章结果的可靠性&#xff0c;进行可视化后可以清晰的表明变量之间的关系。不仅如此&#xff0c;交互作用还可以使用来进…...

mac环境下chatwoot客服聊天docker本地部署+对接通义千问Qwen2.5

&#x1f680; 安装docker-desktop &#x1f680; 定义一个.env环境变量文件docker-compose.yaml .env # Learn about the various environment variables at # https://www.chatwoot.com/docs/self-hosted/configuration/environment-variables/#rails-production-variables…...

mac上安装nvm及nvm的基本语法使用!!

种一棵树&#xff0c;最好是十年前&#xff0c;其次是现在&#xff01;想要改变&#xff0c;从此刻开始&#xff0c;一切都不晚&#xff01; 目录 nvm是什么&#xff1f;前提条件&#xff1a;安装homebrew如果系统已经有node版本&#xff1a;在mac上安装nvm&#xff1a;用nvm安…...

论文阅读:2024-NAACL Semstamp、2024-ACL (Findings) k-SemStamp

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Semstamp: A semantic watermark with paraphrastic robustness for text generation https://aclanthology.org/2024.naacl-long.226/ k-SemStamp: A Clustering-Based Semantic Wate…...

本地JAR批量传私服

在有网络隔离的环境下&#xff0c;Maven项目如果没有搭建私服就得把用到的通用组件通过U盘在每个组员间拷贝来拷贝去。非常的麻烦跟低效。搭建私服&#xff0c;如果通用组件很多的时候手工一个一个上传更是非常的麻烦跟低效&#xff1b; 我就遇上这问题&#xff0c;跟A公司合作…...

Linux上位机开发实战(camera视频读取)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 关于linux camera&#xff0c;一般都是认为是mipi camera&#xff0c;或者是usb camera。当然不管是哪一种&#xff0c;底层的逻辑都是v4l2&#x…...

OpenCV图像处理基础1

OpenCV 提供了丰富的图像处理和计算机视觉功能,包括图像读取、显示、颜色空间转换、滤波、边缘检测、轮廓检测等。 本章将介绍 OpenCV 的基本概念和常用功能。 图像的表示和处理 OpenCV 通过 NumPy 数组 来表示图像数据,每个图像就是一个多维数组,其中每个元素对应图像中的…...

Python Web 框架 Django、Flask 和 FastAPI 对比

在探索 Python Web 框架时&#xff0c;Django、Flask 和 FastAPI 无疑是最常被提及的名字。根据我们最新的 Python 开发者调查&#xff0c;这三大框架继续稳坐后端 Web 开发的热门宝座。它们均为开源项目&#xff0c;并且与 Python 的最新版本无缝兼容。然而&#xff0c;面对不…...

TISAX认证注意事项的详细介绍

TISAX&#xff08;Trusted Information Security Assessment Exchange&#xff09;认证的注意事项犹如企业在信息安全领域航行时必须遵循的灯塔指引&#xff0c;至关重要且不容忽视。以下是对TISAX认证注意事项的详尽阐述&#xff1a; 首先&#xff0c;企业需深入研读并理解TI…...

JavaScript |(六)DOM事件 | 尚硅谷JavaScript基础实战

学习来源&#xff1a;尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版 笔记来源&#xff1a;在这位大佬的基础上添加了一些东西&#xff0c;欢迎大家支持原创&#xff0c;大佬太棒了&#xff1a;JavaScript |&#xff08;六&#xff09;DOM事件 | 尚硅谷JavaScript基础…...

【动态规划】详解混合背包问题

目录 1. 前置文章2. 题目3. 小结 1. 前置文章 本文前置文章&#xff1a; 【动态规划】详解 0-1背包问题【动态规划】详解完全背包问题【动态规划】详解分组背包问题【动态规划】详解多重背包问题 下面是三种背包模式的区别&#xff1a; 0 - 1 背包 是说&#xff1a;有 n 个…...

Nodejs 项目打包部署方式

方式一&#xff1a;PM2 一、准备工作 确保服务器上已安装 Node.js 环境建议使用 PM2 进行进程管理&#xff08;需要额外安装&#xff09; 二、部署步骤 1.首先在服务器上安装 PM2&#xff08;推荐&#xff09;&#xff1a; npm install -g pm22.将项目代码上传到服务器&…...

银河麒麟操作系统的上下游版本判断

以下内容摘自《银河麒麟操作系统进阶应用》一书。 几百款Linux发行版之间并不是完全独立的&#xff0c;绝大多数Linux发行版可以追溯到几个关键的“祖先”发行版&#xff0c;其中最为人熟知的包括Debian、Fedora、Slackware和Arch Linux。这些“祖先”发行版又称“原始”发行版…...

Retrofit中scalars转换html为字符串

简介 在Retrofit中&#xff0c;如果你想直接获取HTML或其他文本格式的响应内容而不是将其映射到一个模型类&#xff0c;ScalarsConverterFactory 就派上用场了。ScalarsConverterFactory 是一个转换器工厂&#xff0c;它能够将响应体转换为Java基本类型如String、Integer或Byte…...

Java基础面试题学习

转换成自已的语言来回答&#xff0c;来源小林coding、沉默王二以及其它资源和自已改编。 1、概念 1、说一下Java的特点 我认为Java有很多特点 首先是平台无关性&#xff1a;Java可以实现一次编译到处运行&#xff0c;因为Java的编译器将源代码编译成字节码&#xff0c;使得该…...

# [RPA] 使用八爪鱼进行高效网页数据采集

在许多行业中&#xff0c;数据是核心资产。然而&#xff0c;虽然许多网站的文本内容可以免费访问&#xff0c;但手动一条一条采集&#xff0c;不仅耗时耗力&#xff0c;还容易出错。这种情况下&#xff0c;使用自动化工具来提高采集效率就显得尤为重要。本文将介绍 八爪鱼 这一…...

【工具变量】全国地级市地方ZF债务数据集(2014-2023年)

地方ZF债务是地方财政运作的重要组成部分&#xff0c;主要用于基础设施建设、公共服务及经济发展&#xff0c;是衡量地方财政健康状况的重要指标。近年来&#xff0c;我国地级市的地方ZF债务规模不断变化&#xff0c;涉及一般债务和专项债务等多个方面&#xff0c;对金融市场、…...

6.5840 Lab 3: Raft

论文很重要 raft-zh_cn/raft-zh_cn.md at master maemual/raft-zh_cn GitHub Part 3A: leader election (moderate) 十次test都过了 实现 Raft 的领导者选举和心跳机制&#xff08;AppendEntries RPC&#xff0c;无日志条目&#xff09;。第 3A 部分的目标是实现以下功能&am…...