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

Lua--1.基础知识

Lua基础知识

  • 变量
    • 简单的4种变量类型
    • 复杂的4种变量类型
    • type函数
  • 字符串操作
    • 长度获取--#
    • 多行打印
    • 字符串拼接
    • 别的类型转字符串-- tostring()
    • 字符串提供的公共方法
  • 运算符
    • 算术运算符-- + - * / % ^
    • 条件运算符-- > < >= <= == ~=(不等于 是 ~=)
    • 逻辑运算符-- and or not
    • 位运算、三目运算符--lua不支持
  • 条件分支语句
    • if 条件 then ... end
    • 不支持switch、三目运算符
  • 循环语句
    • while -- while 条件 do ... end
    • repeat ... until 条件
    • for
  • 函数
    • 两种申明方法
    • 函数传参
    • 函数返回值
    • 函数的类型-- function
    • 不支持函数重载
    • 变长参数-- ...
    • 函数嵌套--函数里面声明函数

变量

简单的4种变量类型

  1. number
  2. string
  3. boolean
  4. nil

lua中所有的变量申明 都不需要申明变量类型 他会自动的判断类型(类似C# 里面的 var)
lua中的一个变量 可以随便赋值 ——自动识别类型
lua中使用没有声明过的变量 ,默认值是nil

复杂的4种变量类型

  1. function–函数
  2. table–表
  3. userdata–数据结构
  4. thread–协同程序

type函数

作用:得到变量类型,返回值是一个string

--lua中使用没有声明过的变量 
--不会报错 默认值 是nil
print(b)--number 所有的数值都是number
print("**********number************")
a = 1
print(a)
print(type(a))
a = 1.2
print(a)
print(type(a))
print("**********string************")
a = "12312"
print(a)
print(type(a))
--字符串的声明 使用单引号或者双引号包裹
--lua里 没有char
a = '123'
print(a)
print(type(a))
print("**********boolean************")
a = true
print(a)
a = false
print(a)
print(type(a))

字符串操作

print("**********字符串************")
str = "双引号字符串"
str2 = '单引号字符串'

长度获取–#

--获取字符串的长度
print("**********字符串长度************")
s = "aBcdEfG字符串"
--一个汉字占3个长度
--英文字符 占1个长度
print(#s)

多行打印

  1. 转义字符
  2. [[]]
print("**********字符串多行打印************")
--lua中也是支持转义字符的
print("123\n123")
print("12\n")s = [[我是
哈哈哈
]]
print(s)

字符串拼接

  1. string.format
print("**********字符串拼接************")
--字符串拼接 通过..
print( "123" .. "456" )
s1 = 111
s2 = 111
print(s1 .. s2)
print(s1 .. s2)print(string.format("我是hhh,我今年%d岁了", 18))
--%d :与数字拼接
--%a:与任何字符拼接
--%s:与字符配对
--.......

别的类型转字符串-- tostring()

print("**********别的类型转字符串************")
a = true
print(tostring(a))

字符串提供的公共方法


print("**********字符串提供的公共方法************")
str = "abCdefgCd"
--小写转大写的方法,不会改变原字符串
print(string.upper(str))
--大写转小写
print(string.lower(str))
--翻转字符串
print(string.reverse(str))
--字符串索引查找
print(string.find(str, "Cde"))
--结果是3--5,lua里都是从1 开始的,有两个返回值
--截取字符串
print(string.sub(str, 3))
print(string.sub(str, 3, 4))
--字符串重复拼接
print(string.rep(str, 2))
--字符串修改,返回修改后的字符串和修改的次数
print(string.gsub(str, "Cd", "**"))--字符转 ASCII码,指定位置1,就是‘L’转为ASCII码
a = string.byte("Lua", 1)
print(a) --76
--ASCII码 转字符
print(string.char(a))
--打印出L

运算符

算术运算符-- + - * / % ^

没有自增自减 ++ –
没有复合运算符 += -= /= *= %=
字符串 可以进行 算数运算符操作 会自动转成number

--字符串 可以进行 算数运算符操作 会自动转成number
print("加法运算" .. 1 + 2)
a = 1
b = 2a = a + b
a = a + 1
print(a + b)
print("123.4" + 1)print("减法运算" .. 1 - 2)
print("123.4" - 1)print("乘法运算" .. 1 * 2)
print("123.4" * 2)print("除法运算" .. 1 / 2)
print("123.4" / 2)print("取余运算" .. 1 % 2)
print("123.4" % 2)--^ lua中 该符号 是幂运算
print("幂运算" .. 2 ^ 5)
print("123.4" ^ 2)

条件运算符-- > < >= <= == ~=(不等于 是 ~=)

print("**********条件运算符************")
-- > < >= <= == ~=
print(3>1)
print(3<1)
print(3>=1)
print(3<=1)
print(3==1)
--不等于 是 ~=
print(3~=1)

逻辑运算符-- and or not

print("**********逻辑运算符************")
--&&  ||  !   “短路”
--and  or  not  lua中 也遵循逻辑运算的 “短路” 规则
print( true and false)
print( true and true)
print( false and true)print( true or false)
print( false or false)print( not true)

位运算、三目运算符–lua不支持

条件分支语句

if 条件 then … end

print("**********条件分支语句************")
a = 9
--if 条件 then.....end
--单分支
if a > 5 thenprint("123")
end--双分支
-- if 条件 then.....else.....end
if a < 5 thenprint("123")
elseprint("321")
end--多分支
-- if 条件 then.....elseif 条件 then....elseif 条件 then....else.....end
if a < 5 thenprint("123")
--lua中 elseif 一定是连这些 否则报错
elseif a == 6 thenprint("6")
elseif a == 7 thenprint("7")
elseif a == 8 thenprint("8")
elseif a == 9 thenprint("9")
elseprint("other")
endif a >= 3 and a <= 9 thenprint("3到9之间")
end--lua中没有switch语法  需要自己实现

不支持switch、三目运算符

循环语句

while – while 条件 do … end


print("**********while语句************")
num = 0
--while 条件 do ..... end
while num < 5 doprint(num)num = num + 1
end

repeat … until 条件

print("**********do while语句************")
num = 0
--repeat ..... until 条件 (注意:条件是结束条件)
repeatprint(num)num = num + 1
until num > 5 --满足条件跳出 结束条件

for

  1. for 变量名=起始值,结束值 do … end
  2. for 变量名=起始值,结束值,增值 do … end

print("**********for语句************")for i =2,5 do --默认递增 i会默认+1print(i)
endfor i =1,5,2 do --如果要自定义增量 直接逗号后面写print(i)
endfor i =5,1,-1 do --如果要自定义增量 直接逗号后面写print(i)
end

函数

print("**********函数************")
--function 函数名()
--end

两种申明方法

  1. 在function后面取名字
  2. 不取名字,用一个变量存储
print("**********无参数无返回值************")
function F1()print("F1函数")
end
F1()
--有点类似 C#中的 委托和事件
F2 = function()print("F2函数")
end
F2()

函数传参

  1. 个数多了或者少了,不会报错
  2. 多了弃用
  3. 少了补空
print("**********有参数************")
function F3(a)print(a)
end
F3(1)
F3("123")
F3(true)
--如果你传入的参数 和函数参数个数不匹配
--不会报错 只会补空nil 或者 丢弃
F3()
F3(1,2,3)

函数返回值

  1. 可以又多个返回值
  2. 外部用多个变量来接取,接少接多不影响,少了丢弃、多了为nil
print("**********有返回值************")
function F4(a)return a, "123", true
end--多返回值时 在前面申明多个变量来接取即可
--如果变量不够 不影响 值接取对应位置的返回值
--如果变量多了 不应 直接赋nil
temp, temp2, temp3, temp4 = F4("1")
print(temp)
print(temp2)
print(temp3)
print(temp4)

函数的类型-- function

print("**********函数的类型************")
--函数类型 就是 function
F5 = function( )print("123")
end
print(type(F5))

不支持函数重载

–函数名相同 参数类型不同 或者参数个数不同
–lua中 函数不支持重载
–默认调用最后一个声明的函数

变长参数-- …

  1. 先用表接,再使用
print("**********变长参数************")
function F7( ... )--变长参数使用 用一个表存起来 再用arg = {...}for i=1,#arg doprint(arg[i])end
end
F7(1,"123",true,4,5,6)

函数嵌套–函数里面声明函数

闭包:改变变量的生命周期

print("**********函数嵌套************")
--函数是变量
function F8()return function()print(123);end
end
f9 = F8()
f9()--闭包 就是在一个函数里返回一个函数,然后返回的函数改变传入参数的生命周期
function F9(x)--改变传入参数的生命周期return function(y)return x + yend
endf10 = F9(10)
print(f10(5))

相关文章:

Lua--1.基础知识

Lua基础知识 变量简单的4种变量类型复杂的4种变量类型type函数 字符串操作长度获取--#多行打印字符串拼接别的类型转字符串-- tostring()字符串提供的公共方法 运算符算术运算符-- - * / % ^条件运算符-- > < > < ~(不等于 是 ~)逻辑运算符-- and or not位运算、…...

从Full-Text Search全文检索到RAG检索增强

从Full-Text Search全文检索到RAG检索增强 时光飞逝&#xff0c;转眼间六年过去了&#xff0c;六年前铁蛋优化单表千万级数据查询性能的场景依然历历在目&#xff0c;铁蛋也从最开始做CRUD转行去了大数据平台开发&#xff0c;混迹包装开源的业务&#xff0c;机缘巧合下做了实时…...

Qt桌面应用开发 第八天(读写文件 文件编码 文件流)

目录 1.读文件 2.写文件及编码格式 2.1写文件 2.2编码格式 3.文件信息读取 4.文件流 4.1QTextStream 4.2QDataStream 1.读文件 需求&#xff1a;一个pushButton&#xff0c;点击之后可以选择一个txt文件的路径&#xff0c;路径会显示在lineEdit上&#xff0c;txt文件的…...

玩转 Burp Suite (1)

内容预览 ≧∀≦ゞ 玩转 Burp Suite (1)声明Burp Suite 简介Dashboard&#xff08;仪表盘&#xff09;1. 默认任务管理2. 暂停任务3. 新建扫描任务4. 使用总结 Target&#xff08;目标&#xff09;1. SIte Map &#xff08;站点地图&#xff09;2. Scope&#xff08;范围&#…...

MyBatis高级扩展

一、Mapper批量映射优化: 1.需求: Mapper 配置文件很多时&#xff0c;在全局配置文件中一个一个注册太麻烦&#xff0c;希望有一个办法能够一劳永逸 2.配置方式: Mybatis允许在指定Mapper映射文件时&#xff0c;只指定其所在的包: <mappers><package name"c…...

蓝桥杯c++算法秒杀【6】之动态规划【下】(数字三角形、砝码称重(背包问题)、括号序列、异或三角:::非常典型的必刷例题!!!)

别忘了请点个赞收藏关注支持一下博主喵&#xff01;&#xff01;&#xff01;! ! ! ! &#xff01; 关注博主&#xff0c;更多蓝桥杯nice题目静待更新:) 动态规划 三、括号序列 【问题描述】 给定一个括号序列&#xff0c;要求尽可能少地添加若干括号使得括号序列变得合…...

MR30分布式 IO 模块在冷却水泵系统中的卓越应用

在当今各类工业生产以及大型设施运行的场景中&#xff0c;冷却水泵系统起着至关重要的作用&#xff0c;它犹如保障整个运转体系顺畅运行的 “血液循环系统”&#xff0c;维持着设备适宜的温度环境&#xff0c;确保其稳定、高效地工作。而随着科技的不断发展&#xff0c;明达技术…...

微前端基础知识入门篇(二)

概述 在上一篇介绍了一些微前端的基础知识,详见微前端基础知识入门篇(一)。本文主要介绍qiankun微前端框架的实战入门内容。 qiankun微前端实践 通过Vite脚手架分别创建三个程序,主应用A为:vite+vue3+ts,两个微应用分别为B:vite+vue3+ts;C:vite+React+ts。因为qiankun的…...

直接抄作业!Air780E模组LuatOS开发:位运算(bit)示例

在嵌入式开发中&#xff0c;位运算是一种高效且常用的操作技巧。本文将介绍如何使用Air780E模组和LuatOS进行位运算&#xff0c;并通过示例代码帮助读者快速上手。 一、位运算概述 位运算是一种在计算机系统中对二进制数位进行操作的运算。由于计算机内部数据的存储和处理都是…...

从零开始理解JVM:对象的生命周期之对象销毁(垃圾回收)

一、JVM参数 在学垃圾回收器之前&#xff0c;我们先要知道&#xff0c;jvm参数是怎么回事。因为配置各种回收器&#xff0c;必须对应各种参数设置。 标准参数&#xff08;-&#xff09; 所有的JVM实现都必须实现这些参数的功能&#xff0c;而且向后兼容 -help-version 非标准参…...

计算机网络的发展

目录 起源与早期发展 ARPANET与TCP/IP协议的诞生 互联网的诞生与普及 高速互联网与无线网络的兴起 移动互联网与云计算的崛起 物联网、区块链与自动驾驶技术的兴起 起源与早期发展 计算机网络的雏形最早可以追溯到20世纪60年代&#xff0c;主要是为了共享大型计算资源。当…...

python3 自动更新的缓存类

这个类会在后台自动更新缓存数据&#xff0c;你只需要调用方法来获取数据即可。 自动更新缓存类 以下是 AutoUpdatingCache 类的实现&#xff1a; import threading import timeclass AutoUpdatingCache:def __init__(self, update_function, expiry_time60):""&qu…...

PICO 获取设备号 SN码

Unity版本 2020.3.42f1c1PICO SDK版本PICO Unity Integration SDK-3.0.5-20241105Pico设备pico 4ultra 注意 此api暂时只测试企业版本 pico 4ultra 代码 using Unity.XR.PICO.TOBSupport;private void Awake() {bool result PXR_Enterprise.InitEnterpriseService();Debug.L…...

spf算法、三类LSA、区间防环路机制/规则、虚连接

1.构建spf树&#xff1a; 路由器将自己作为最短路经树的树根根据Router-LSA和Network-LSA中的拓扑信息,依次将Cost值最小的路由器添加到SPF树中。路由器以Router ID或者DR标识。广播网络中DR和其所连接路由器的Cost值为0。SPF树中只有单向的最短路径,保证了OSPF区域内路由计管不…...

计算机基础(下)

内存管理 内存管理主要做了什么&#xff1f; 操作系统的内存管理非常重要&#xff0c;主要负责下面这些事情&#xff1a; 内存的分配与回收&#xff1a;对进程所需的内存进行分配和释放&#xff0c;malloc 函数&#xff1a;申请内存&#xff0c;free 函数&#xff1a;释放内存…...

OpenCV从入门到精通实战(七)——探索图像处理:自定义滤波与OpenCV卷积核

本文主要介绍如何使用Python和OpenCV库通过卷积操作来应用不同的图像滤波效果。主要分为几个步骤&#xff1a;图像的读取与处理、自定义卷积函数的实现、不同卷积核的应用&#xff0c;以及结果的展示。 卷积 在图像处理中&#xff0c;卷积是一种重要的操作&#xff0c;它通过…...

Java基础——(一)Java概述

Java特性 简单性&#xff1a;Java与C很相似&#xff0c;但剔除了C中许多比较复杂并且很少使用的功能&#xff0c;比如头文件、指针运算、结构、联合、操作符重载、虚基类等&#xff0c;从而使Java更易于上手、学习。面向对象&#xff1a;Java是一门面向对象语言&#xff0c;具…...

关于IDE的相关知识之三【插件安装、配置及推荐的意义】

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于ide插件安装、配置及推荐意义的相关内容…...

C++设计模式之组合模式的基本结构

组合模式的UML类图表示如下&#xff1a; ------------------ ------------------ | Component | <----- | Leaf | ------------------ ------------------ | operation() | | operation() | ------------------ --…...

Apache OFBiz xmlrpc XXE漏洞(CVE-2018-8033)

目录 1、漏洞描述 2、EXP下载地址 3、EXP利用 1、漏洞描述 Apache OFBiz是一套企业资源计划&#xff08;ERP&#xff09;系统。它提供了广泛的功能&#xff0c;包括销售、采购、库存、财务、CRM等。 Apache OFBiz还具有灵活的架构和可扩展性&#xff0c;允许用户根据业务需求…...

梯度——多元函数偏导数——梯度算子的理论基础

梯度是一个数学概念&#xff0c;在多维空间中表示函数在某一点处变化最快的方向和变化率。 对于一个多元函数 f ( x 1 , x 2 , ⋯ , x n ) f(x_1, x_2, \cdots, x_n) f(x1​,x2​,⋯,xn​)&#xff0c;其梯度是一个向量&#xff0c;记作 ∇ f \nabla f ∇f或者 grad f f f&…...

【GPT】力量训练的底层原理?

详细解读力量训练的每一个底层原理 力量训练之所以有效&#xff0c;是因为它利用了肌肉、神经系统和生物化学反应的基本机制。以下逐一详细解析&#xff0c;并解释相关概念。 1. 应力-恢复-适应理论 概念解析 应力&#xff08;Stress&#xff09;&#xff1a;指训练带来的负…...

Django 路由层

1. 路由基础概念 URLconf (URL 配置)&#xff1a;Django 的路由系统是基于 urls.py 文件定义的。路径匹配&#xff1a;通过模式匹配 URL&#xff0c;并将请求传递给对应的视图处理函数。命名路由&#xff1a;每个路由可以定义一个名称&#xff0c;用于反向解析。 2. 基本路由配…...

Unity项目性能优化列表

1、对象池 2、检查内存是否泄露。内存持续上升(闭包、委托造成泄露) 3、检查DrawCall数量&#xff0c;尽量减少SetPassCall 4、尽量多的利用四种合批 动态合批(Dynamic Batching)静态合批(Static Batching)GPUInstancingSRP Batcher 动态合批消耗内存把多个网格组合在一起合并…...

docker启动kafka、zookeeper、kafdrop

1、启动zookeeper docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper2、启动kafka docker run -d --name kafka --publish 9092:9092 --link zookeeper:zookeeper -e KAFKA_BROKER_ID1 -e HOST_IP127.0.0.1 -e KAFKA_ZOOKEEPER_CONNECTzookeeper:2181…...

Pytest使用Jpype调用jar包报错:Windows fatal exception: access violation

问题描述 ​   之前我们有讲过如何使用Jpype调用jar包&#xff0c;在成功调用jar包后&#xff0c;接着在Pytest框架下编写自动测试用例。但是在Pytest下使用Jpype加载jar包&#xff0c;并调用其中的方法会以下提示信息&#xff1a; ​   虽然提示信息显示有Windows显示致命…...

【AI赋能 Python编程】第十一章 Python技能提升指南:借助AI加速学习

AI赋能 Python编程-系列文章目录 第十一章 Python技能提升指南&#xff1a;借助AI加速学习 文章目录 AI赋能 Python编程-系列文章目录第十一章 Python技能提升指南&#xff1a;借助AI加速学习 前言明确学习目标基础入门指导进阶学习指导学习过程互动综合学习提示模板 前言 在…...

️ 爬虫开发中常见的性能优化策略有哪些?

在爬虫开发中&#xff0c;性能优化是确保爬虫稳定、高效运行的关键。以下是一些常见的性能优化策略&#xff0c;结合了搜索结果中的信息&#xff1a; 异步编程&#xff1a; 使用 asyncio 和 aiohttp 实现高并发&#xff0c;提高爬取效率。异步请求允许在等待一个请求完成的同时…...

Ubuntu安装不同版本的opencv,并任意切换使用

参考&#xff1a; opencv笔记&#xff1a;ubuntu安装opencv以及多版本共存 | 高深远的博客 https://zhuanlan.zhihu.com/p/604658181 安装不同版本opencv及共存、切换并验证。_pkg-config opencv --modversion-CSDN博客 Ubuntu下多版本OpenCV共存和切换_ubuntu20如同时安装o…...

《操作系统 - 清华大学》5 -4:虚拟技术

文章目录 0. 虚拟存储的定义1. 目标2.局部性原理3. 虚拟存储的思路与规则4. 虚拟存储的基本特征5. 虚拟页式存储管理5.1 页表表项5.2 示例 0. 虚拟存储的定义 1. 目标 虚拟内存管理技术&#xff0c;简称虚存技术。那为什么要虚存技术&#xff1f;在于前面覆盖和交换技术&#…...

网安瞭望台第5期 :7zip出现严重漏洞、识别网络钓鱼诈骗的方法分享

国内外要闻 7 - Zip存在高危漏洞&#xff0c;请立刻更新 2024 年 11 月 24 日&#xff0c;do son 报道了 7 - Zip 中存在的一个高严重性漏洞 CVE - 2024 - 11477。7 - Zip 是一款广受欢迎的文件压缩软件&#xff0c;而这个漏洞可能会让攻击者在存在漏洞的系统中执行恶意代码。…...

【JS】面试八股文

类型 JavaScript 有哪些数据类型,它们的区别? 答:JavaScript 共有八种数据类型, 分别是 Undefined、 Null、 Boolean、Number、String、Object、Symbol、BigInt。 其中 Symbol是ES6中新增的,BigInt 是 ES2020 中新增的。 Symbol 代表创建后独一无二且不可变的数据类型,…...

1、正则表达式

grep匹配 grep用来过滤文本内容&#xff0c;以匹配要查询的结果。 grep root /etc/passwd&#xff1a;匹配包含root的行 -m 数字&#xff1a;匹配几次后停止 -v&#xff1a;取反-i&#xff1a;忽略字符的大小写&#xff0c;默认的&#xff0c;可以不加-n&#xff1a…...

带有悬浮窗功能的Android应用

android api29 gradle 8.9 要求 布局文件 (floating_window_layout.xml): 增加、删除、关闭按钮默认隐藏。使用“开始”按钮来控制这些按钮的显示和隐藏。 服务类 (FloatingWindowService.kt): 实现“开始”按钮的功能&#xff0c;点击时切换增加、删除、关闭按钮的可见性。处…...

uniapp开发微信小程序笔记8-uniapp使用vant框架

前言&#xff1a;其实用uni-app开发微信小程序的首选不应该是vant&#xff0c;因为vant没有专门给uni-app设置专栏&#xff0c;可以看到目前Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本&#xff0c;并由社区团队维护 React 版本和支付宝小程序版本。 但是我之前维…...

C++软件设计模式之组合模式与其他模式的协作举例

组合模式&#xff08;Composite Pattern&#xff09;、装饰器模式&#xff08;Decorator Pattern&#xff09;、享元模式&#xff08;Flyweight Pattern&#xff09;、迭代器模式&#xff08;Iterator Pattern&#xff09;和访问者模式&#xff08;Visitor Pattern&#xff09;…...

ArcGIS pro中的回归分析浅析(加更)关于广义线性回归工具的补充内容

在回归分析浅析中篇的文章中&#xff0c; 有人问了一个问题&#xff1a; 案例里的calls数据貌似离散&#xff0c;更符合泊松模型&#xff0c;为啥不采用泊松而采用高斯呢&#xff1f; 确实&#xff0c;在中篇中写道&#xff1a; 在这个例子中我们为了更好地解释变量&#x…...

mybatis-plus 实现分页查询步骤

MyBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。它提供了代码生成器、条件构造器、分页插件等多种功能&#xff0c;其中分页查询是一个常用的功能。 以下是如何在 MyBatis-Plus 中实现分页查询…...

Vue开发中常见优化手段总结

Tree Shaking or Trunk 动态引入&#xff08;Dynamic Imports&#xff09; 动态引入是指在代码执行过程中&#xff0c;根据需要动态加载模块&#xff0c;而不是在应用启动时一次性加载所有模块。这可以通过JavaScript的import()函数实现&#xff0c;它返回一个Promise对象&…...

IDEA无法创建java8、11项目创建出的pom.xml为空

主要是由于Spring3.X版本不支持JDK8&#xff0c;JDK11&#xff0c;最低支持JDK17 解决的话要不就换成JDK17以上的版本&#xff0c;但是不太现实 另外可以参考以下方式解决 修改spring初始化服务器地址为阿里云的 https://start.aliyun.com/...

TCP/IP网络编程-C++(上)

TCP/IP网络编程-C &#xff08;上&#xff09; 一、基于TCP的服务端/客户端1、server端代码2、client端代码3、socket() 函数3.1、函数原型3.2、参数解析3.2.1、协议族&#xff08;domain参数&#xff09;3.2.2、套接字类型&#xff08;type参数&#xff09;3.2.3、最终使用的协…...

在线绘制Nature Communication同款双色、四色火山图,突出感兴趣的基因

导读&#xff1a;火山图通常使用三种颜色分别表示显著上调&#xff0c;显著下调和不显著。通过为特定的数据点添加另一种颜色&#xff0c;可以创建双色或四色火山图&#xff0c;从而更直观地突出感兴趣的数据点。 《Nature Communication》文章“Molecular and functional land…...

ctfshow pwn wp

文章目录 Test_your_ncpwn-0pwn1pwn2pwn3pwn4 前置基础pwn5pwn6pwn7pwn8pwn9pwn10pwn11pwn12pwn13&#xff1a;gcc编译执行C语言代码pwn14&#xff1a;gcc编译执行C语言代码pwn15&#xff1a;nasm编译asm&#xff0c;ld链接为可执行文件pwn16&#xff1a;gcc编译汇编文件.s为可…...

【数据结构实战篇】用C语言实现你的私有队列

&#x1f3dd;️专栏&#xff1a;【数据结构实战篇】 &#x1f305;主页&#xff1a;f狐o狸x 在前面的文章中我们用C语言实现了栈的数据结构&#xff0c;本期内容我们将实现队列的数据结构 一、队列的概念 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端…...

数据结构 (11)串的基本概念

一、串的定义 1.串是由一个或者多个字符组成的有限序列&#xff0c;一般记为&#xff1a;sa1a2…an&#xff08;n≥0&#xff09;。其中&#xff0c;s是串的名称&#xff0c;用单括号括起来的字符序列是串的值&#xff1b;ai&#xff08;1≤i≤n&#xff09;可以是字母、数字或…...

快速高效求素数|质数的方法—Java(模板)

判断素数|质数方法时间效率:线性筛法>埃氏筛法>试除法 在写算法题的时候&#xff0c;各种各样跟素数有关的题目非常常见&#xff0c;本文列出了三种常见的判断素数的方法 三种求素数方法的优缺点 一、试除法 试除法的基本思想是&#xff1a;判断一个数 x 是否为素数&…...

探秘嵌入式位运算:基础与高级技巧

目录 一、位运算基础知识 1.1. 位运算符 1.1.1. 与运算&#xff08;&&#xff09; 1.1.2. 或运算&#xff08;|&#xff09; 1.1.3. 异或运算&#xff08;^&#xff09; 1.1.4. 取反运算&#xff08;~&#xff09; 1.1.5. 双重按位取反运算符&#xff08;~~&#xf…...

iOS 17.4 Not Installed

0x00 系统警告 没有安装 17.4 的模拟器&#xff0c;任何操作都无法进行&#xff01; 点击 OK 去下载&#xff0c;完成之后&#xff0c;依旧是原样&#xff01; 0x01 解决办法 1、先去官网下载对应的模拟器&#xff1a; https://developer.apple.com/download/all/?q17.4 …...

RestTemplate 使用教程

RestTemplate 是 Spring 框架提供的一种用于执行HTTP请求的同步客户端。它简化了与HTTP服务器的交互&#xff0c;并支持RESTful Web服务。 1. 添加依赖 首先&#xff0c;确保你的项目中包含了Spring Web的支持。如果你使用的是Maven&#xff0c;在pom.xml文件中添加如下依赖&…...

windows下安装wsl的ubuntu,同时配置深度学习环境

写在前面&#xff0c;本次文章只是个人学习记录&#xff0c;不具备教程的作用。个别信息是网上的&#xff0c;我会标注&#xff0c;个人是gpt生成的 安装wsl 直接看这个就行&#xff1b;可以不用备份软件源。 https://blog.csdn.net/weixin_44301630/article/details/1223900…...