Facade模式注重简化接口,Adapter模式注重转化接口,Bridge模式注重分离接口(抽现)与其实现,Decorator模式注重稳定接口的前提下为对象扩展功能。装饰(Decorator)模式过度地使用了继承来扩展对象的功能是引起要使用装饰模式。Decorator实现了运行时动态的扩展对象功能的能力,而且可以根据需要扩展多个功能,避免使用进程带来的灵活和多子类问题。Decorator类在接口上
# 如何在 Acode 中导入 Python 包 随着 Python 编程语言的普及,越来越多的开发者选择在移动设备上进行 Python 开发。其中,Acode 是一款受欢迎的 Android 编辑器,因其轻便和友好的用户界面而受到青睐。但是,许多初学者在使用 Acode 进行 Python 编程时,可能会遇到如何导入 Python 包的问题。本文将通过一个实际示例来解决这一问题,并结合类图进行
原创 8月前
175阅读
安装好Lua之后就可以进行Lua脚本的编程学习了。1.终端执行lua test.lua就是执行test.lua脚本;2.终端执行lua -i test.lua  执行问test.lua之后就会进入交互模式;3.在交互模式中运行dofile(”test.lua“)就可以运行test.lua.一种常用的编辑模式就是左边开一个调试窗口,启用lua的交互模式用dofile运行程序,另一边开一个编
转载 2024-05-01 15:08:26
198阅读
一、业务场景一个行业网盘产品,用户分为主账号和子账户,多个子账户都可以操作公司主账号下的网盘,在多个子账户操作文件结构的时候,存在并发问题,如果简单的串行处理又明显影响用户体验举例:上传下载的时候肯定需要多线程上传文件,你串行化了怎么办。两个人同时上传文件 你也不能串行化。二、逻辑锁的设计举例:同一个文件夹 支持并发写入同一个文件夹 支持并发删除三、技术选型3.1 redis由于本身的并发并不高,
转载 2023-07-08 13:13:44
142阅读
什么是闭包?这个问题说简单挺简单的,但是一般讲了之后跟没讲一样。就拿下面的lua代码看一下。local function getCallBack() local x = 1 return function() x = x + 1 print(x) end end local fun = getCallBack() fun() fun() fun() 上面的fun获得的就是一个闭包
转载 2024-04-06 23:06:30
46阅读
lua面向对象lua本身不支持面向对象的特性,但是由于lua是基于原型(prototype)的语言,要实现面向对象的特性也是有一定的方法的,实现方式有很多种, 总结了一下我最近对使用lua实现面向对象的特性,主要可以分为以下两种不同的方式来实现:  1、使用metatable的__index域实现,实现的时候需要利用的lua语言的一些特性才可以实现,主要有:  a、将table b作为table
转载 2024-03-29 22:23:10
78阅读
背景: redis单机环境下可使用sexNx去实现加锁,通过value值去匹配是否可重入,while循环+随机事件沉默 实现锁等待;但是会产生例如业务可能超过key的过期时间等问题。从而引入redisson集群分布式锁。一、redisson加锁流程图                二、redisson底层原理  (1)加锁机制    咱们来看上面那
转载 2023-06-23 20:45:40
184阅读
使用 Lua 进行实际开发的过程中,格式化字符串的函数 string.format() 的使用频率是非常高的,这里整理一下关于这个函数的使用。参数解析string.format(formatstring, ...)formatstring 为格式化串(必须是一个字符串),其中可能包含多个转义码(例如最为常用的 %d %s 等)。... 为数量不定的参数列表,以逗号分隔,与格式
Class={}; Class.classList={}; --保存所有已经定义过的类 --类的类型: 类和接口, 接口也是一种类 Class.TYPE_CLASS="Class"; Class.TYPE_INTERFACE="Interface"; function Class.isExist(className) return Class.classList[className]
转载 2023-11-28 13:26:47
59阅读
Lua 中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然可以定义函数。假设函数f2定义在函数f1中,那么就称f2为f1的内嵌(inner)函数,f1为f2的外包(enclosing)函数,外包和内嵌都具有传递性,即f2的内嵌必然是f1 的内嵌,而f1的外包也一定是f2的外包。内嵌函数可以访问
转载 2024-06-11 10:49:22
77阅读
一、说明这里不对lua语言本身及其编译器运行环境等做介绍,以下所有介绍前提对lua相关有所了解。二、ngx_lua介绍原理ngx_luaLua嵌入Nginx,可以让Nginx执行Lua脚本,并且高并发、非阻塞的处理各种请求。Lua内建协程,这样就可以很好的将异步回调转换成顺序调用的形式。ngx_luaLua中进行的IO操作都会委托给Nginx的事件模型,从而实现非阻塞调用。开发者可以采用串行的
转载 2024-06-28 17:21:42
105阅读
一、环境搭建初学lua,首先要做的就是搭建环境首先下载lua,解压。添加环境变量:随后安装ide,我用的vscode,官网下载vscode下载之后安装,lua debug新建lua文件,ctrl+N(或者右上角新建)然后ctrl+s保存文件,开始编译。二、基本语法基础数据类型: 基础数据类型 nil表示无效,在表达式中等于false,可以将一个变量赋值为nil来删掉他booleantrue
转载 2024-02-23 16:01:27
78阅读
目录变量基本数据类型变量的作用域字符串操作运算符条件分支语句循环函数表实现数组迭代器遍历ipairs 遍历pairs 遍历实现字典实现类公共操作多脚本执行协同程序创建协程运行协程协程挂起协程状态元表Lua 面对对象封装继承多态Lua自带库时间库数学库路径Lua垃圾回收 变量Lua 中的一个变量可以随便赋值,自动识别类型基本数据类型--nil a = nil --number a = 1 a =
转载 2024-04-04 09:13:33
128阅读
使用流程 1. 函数的使用    以下程序演示了如何在Lua使用函数, 及局部变量 例e02.lua -- functions  function pythagorean(a, b)  local c2 = a^2 + b^2  return sqrt(c2)  end  print(pythagorean(3,4
转载 2024-01-15 21:26:15
114阅读
虽然lua中字符串拼接“string.format”相对于“..”消耗较大,但有时为了代码的可读性,项目中还是经常用到“string.format”。至于这两个用法的性能看源码也很容易看出来,这里就简单说一下,前者其实调用C函数str_format来实现拼接的,而后者只是一个操作符,通过memcpy来拼接,并且多个“..”的操作其实也只执行了一次concat。常用占位符%c - 接受一个数字, 并
一、介绍红点系统是游戏和各种软件中常用的系统,本文的目的是使用lua实现一个基于树结构的简单红点系统;代码如下local RedPointManager = {} local RedPointCPTb = { RP_UI2_Btn1 = 'RP_UI1_Btn0', } function RedPointManager:Init() self:InitRedPropertyTb() e
原理源码中加锁lua代码if (redis.call('exists', KEYS[1]) == 0) then redis.call('hset', KEYS[1], ARGV[2], 1); redis.call('pexpire', KEYS[1], ARGV[1]); return nil; end; if (re
转载 2023-11-25 13:47:12
107阅读
一、协同程序基础1.什么是协同程序  协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈、局部变量和指令指针(即可以保存变量的值和状态),同时又与其他协同程序共享全局变量和其他大部分东西。  与线程的区别是具有多个线程的程序可以同时运行几个线程,而程序任意时刻只能运行一个协同程序,并且协同程序只有被显示地(执行挂起函数)要求挂起才会暂停。2.四种状态  (1)挂起(suspended):创
语言基础快速预览-Lua数据类型变量循环流程控制函数运算符字符串数组迭代器tableLua模块与包Lua元表协同程序文件I/O错误处理面向对象初阶话题进阶话题高阶话题 供大家快速熟悉各种语言基础语法,快速上手。叙述尽量简洁。 对以下资源进行整理排版,在此表示感谢数据类型--[[ nil、boolean、number、string、userdata、function、thread和table。
转载 7月前
33阅读
# Java使用Lua Lua是一种轻量级的高级脚本语言,常被用于嵌入式系统、游戏开发等领域。而Java是一种跨平台的面向对象编程语言。在一些项目中,我们可能需要在Java中使用Lua来实现某些功能。本文将介绍如何在Java中使用Lua,并提供相应的代码示例。 ## 为什么要在Java中使用Lua? 1. **灵活性**:Lua是一种脚本语言,可以动态执行代码,因此在Java中使用Lua可以
原创 2024-06-15 05:46:17
53阅读
  • 1
  • 2
  • 3
  • 4
  • 5