一、前言  Lua是一门以其性能著称的脚本语言,被广泛应用在很多方面,尤其是游戏。像《魔兽世界》的插件,手机游戏《大掌门》《神曲》《迷失之地》等都是用Lua来写的逻辑。   所以大部分时候我们不需要去考虑性能问题。Knuth有句名言:“过早优化是万恶之源”。其意思就是过早优化是不必要的,会浪费大量时间,而且容易导致代码混乱。   所以一个好的程序员在考虑优化性能前必须问自己两个问题:“我的程序真的
转载 2024-06-06 12:46:50
25阅读
前言本文将通过几个简单的实例演示,巩固对__index和__newindex的理解,同时加深对Lua中元表和元方法的理解,如果对Lua的元表和元方法还不是很熟悉的话,请参考这篇文章:《Lua中的元表与元方法》。 具有默认值的table我们都知道,table中的任何字段的默认值都是nil,但是通过元表,我们可以很容易的修改这一规定,代码如下:function setDefault(tb,
转载 2024-03-14 11:06:10
163阅读
最近在看skynet的代码,总体感觉跟 erlang很像,理念都是基于Actor模型,即万物皆Actor,Actor之间通过发送消息进行通信。(这里说的“万物”倾向于表示有能动作用,有独立行为的个体。) 不同的是, skynet使用 c 和 lua实现,这两个语言相较erlang比较流行。 skynet的Actor 是指skynet服务,skynet服务 类似erlang进程,调
转载 2024-08-23 07:03:16
128阅读
  因为团队项目的需要,最近在学习lua。下面介绍一下我对lua的了解和学习。  一、lua介绍  lua是一种脚本语言,由标准C编写而成,代码简介优美,像java一样具有跨平台性。它可以被C/C++调用,也可以调用C/C++中的函数。使用lua时可以将它作为扩展脚本,在嵌入式应用程序中,为其提供灵活的扩展和定制功能;也可以作为普通的配置文件,代替XML,ini等文件
转载 2024-03-17 13:21:52
288阅读
运行 首先,我们需要知道,Lua是类C的,所以,他是大小写字符敏感的。 下面是Lua的Hello World。注意:Lua脚本的语句的分号是可选的,这个和GO语言很类似。 <span style="font-size:18px;">print("Hello World")</span> 你可以像python一样,在命令行上运行lua命令后进入lua的shell中执行语句
转载 2024-05-27 16:19:32
23阅读
前言本文将通过几个简单的实例演示,巩固对__index和__newindex的理解,同时加深对Lua中元表和元方法的理解,如果对Lua的元表和元方法还不是很熟悉的话,请参考这篇文章:《Lua中的元表与元方法》。 具有默认值的table我们都知道,table中的任何字段的默认值都是nil,但是通过元表,我们可以很容易的修改这一规定,代码如下: function setDefault(tb,
首先学习下LuaEnv类(Lua虚拟机,建议全局唯一)object[] DoString(string chunk, string chunkName = "chuck", LuaTable env = null) 描述: 执行一个代码块。 参数: chunk: Lua代码; chunkName: 发生error时的debug显示信息中使用,指明某某代码块的某行错误; env :为这个代码块; 返
转载 2024-03-27 17:35:44
56阅读
无论你是 JavaScript 新手还是老手,无论你是在面试工作,还是只是做常规的开发工作,通常会发现给定几行代码,你需要知道要输出什么以及以什么顺序输出 . 由于 JavaScript 是一种单线程语言,我们可以得出以下结论: let a = '1'; console.log(a); let b = '2'; console.log(b); 然而,JavaScript 实际上是这样的: setT
  1:环境变量配置 A:桌面“我的电脑”--- 属性 --- 高级 --- 环境变量单击此按钮进入环境变量设置,如果有Path变量把“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727”路添加到Path变量值中;如果没有Path变量则“新建”---变量名设为“Path”,变量值设为“C:/WINDOWS/Micros
转载 2024-06-04 07:25:11
17阅读
什么是一个高效的软件?一个高效的软件不仅应该比实现同样功能的软件运行得更快,还应该消耗更少的系统资源。程序的时间效率是指运行速度,空间效率是指程序占用内存或者外存的状况。另外程序的效率我们也可以分为全局效率和局部效率。全局效率是指站在整个系统的角度上考虑的效率,局部效率是指站在模块或函数角度上考虑的效率。 1. 使用整数和长整数   提高代码运行速度最简单的方法莫过于使用正确的数据类
  总结:我们要使用代码关闭程序的话,应该向窗口发送WM_CLOSE或者直接调DestroyWindow(HWND)函数   (默认情况下WM_CLOSE的消息响应就是调用DestroyWindow(HWND)   函数,所以我们直接调用也达到一样的效果).这样可以令操作系统回收窗口占用着的内存资源后再退出程序.千万不要直接用PostMessage
openresty,lua,shell执行服务器脚本为什么不直接通过==php==来调用系统命令而单独写一个监控脚本呢?关于监控脚本为什么用==openresty/ngx_lua==怎么做?1.下载安装麻省理工==Juce==版的 ==lua_resty_shell==2.下载安装 ==sockproc==3. 编写lua脚本 最近安装了openresty ,想做一个通过git各大代码托管平台提
转载 2024-03-05 22:54:53
164阅读
最近公司的游戏项目中出现了一个奇怪的bug。安卓端当旁观玩家过多,比如达到150人的时候,直接崩溃。 出现这个bug的时候,我也很崩溃。仔细看了一下log,提示`local reference table overflow (max=512)`百度一下,说是Android JNI局部引用表溢出。根据操作步骤,定位到了lua代码中的引起报错的代码块。仔细查看了代码,发现是lua调用android端
转载 2024-03-05 11:12:45
27阅读
执行栈call stack本质:一块内存空间只要有一个函数被调用(函数声明不管),就会往执行栈里加入一个执行上下文 执行上下文也是一块内存空间(记录函数执行的一些必须要的东西)没有执行上下文,函数无法执行JS代码只会在执行执行,不可能在其他地方执行JS线程执行JS代码的过程举例:下面代码输出什么?const a = 1; console.log(a); function A() { con
转载 2024-02-14 19:32:09
100阅读
# 如何在Java代码执行Lua脚本 作为一名经验丰富的开发者,你可以向刚入行的小白介绍如何在Java代码执行Lua脚本。下面是整个流程的步骤和每一步所需的代码。 ## 流程步骤 为了更好地理解整个流程,我们可以使用下面的表格来展示每个步骤。 | 步骤 | 描述
原创 2024-01-01 07:20:01
419阅读
redis-2.6支持通过EVAL命令来执行lua脚本,对lua脚本的支持扩展了redis的应用场景,redis支持路脚本需要做2件事redis能执行lua脚本在lua脚本里能执行redis的命令接下来,我将通过一个简单的实例来解析redis如何完成上述两个工作的。 构建一个简单的redis#define DICT_SIZE 100 struct redisDict { char*
原创 2023-05-08 14:24:01
323阅读
 首先,如果从AST(抽象语法树)的角度来看,这边我使用了uglify-js(https://github.com/mishoo/UglifyJS)来进行AST的生成,这个库应该在生成javascript的AST中算是比较流行的了,其结果如下:代码:(function() {}());结果:[ "toplevel", [ [ "stat", [
lua 和 javaScript 差不多的,就是一些语法的细节不同,学过js,再注意一下下面的细节,就能上手了~ Lua 和 Js 的不同Lua 概述Lua概述Lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua特性1.轻量级使用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入
一、前言  运行环境window,redis版本3.2.1。此处暂不对Lua进行详细讲解,只从Redis的方面讲解。二、Redis的Lua脚本  在Redis的2.6版本推出了脚本功能,允许开发者使用Lua语言编写脚本传到Redis中执行,在Lua脚本中也可以调用大部分的Redis命令。使用脚本有以下三个好处:  (1) 减少网络开销:有些时候需要多次请求Redis获取处理数据,而使用脚本功能就可
【总结别人的经验之上而成,并非完全copy。】 touch filename.sh之后,在vim中编写shell代码 vim显示行号 :set number内容完全参考Linux Shell脚本实现根据进程名杀死进程,代码如下#!/bin/sh #根据进程名杀死进程 if [ $# -lt 1 ] then echo "缺少参数:procedure_name" exit 1 fi
转载 2024-04-16 08:14:19
51阅读
  • 1
  • 2
  • 3
  • 4
  • 5