lua运算符 算术运算符 +,-,*(乘),/(除),%(取余),^(乘幂),-(负号) 关系运算符 ==(等于),~=(不等于),>,<,>=,<= 逻辑运算符 and,or,not 其它运算符 ..(连接符),#(一元运算符,返回字符串或表的长度) 运算符优先级 not - (unary) * / + - .. < > <= >= ~= == and or 注:除了^和..外所有的二元运算符都是左连接的。 示例 运算内容 等同 解释后 a+i < b/2+1 <–> (a+i) < ((b/2)+1) 5+x^2*8 <–> 5+((x^2)*8) a < y and y <= z <–> (a < y) and (y <= z) -x^2 <–> -(x^2) x^y^z <–> x^(y^z)
<ul id="markdown-toc">
通过keys进行模糊查询后的批量操作
对Hash集合下的key进行模糊查询后的批量操作
对Set集合下的值进行模糊查询后的批量操作
注意
通过keys进行模糊查询后的批量操作
var redis = ConnectionMultiplexer.Connect("127.0.0.1:6379,allowAdmin = true");
redis.GetDatabase().ScriptEvaluate(LuaScript.Prepare(
//Redis的keys模糊查询:
" local ks = redis.call('KEYS', @keypattern) " + //local ks为定义一个局部变量,其中用于存储获取到的keys
" for i=1,#ks,5000 do " + //#ks为ks集合的个数, 语句的意思: for(int i = 1; i <= ks.Count; ...
Lua程序设计的第一篇,主要内容是基本语法以及运算符。
交互模式:在交互模式下,Lua语言解释器如果发现我们输入的某一行不完整,会等待知道程序块或表达式被输入完整后再进行解释执行。
我们可以使用-i参数让Lua语言解释器在执行完制定的程序段之后进入交互模式。
% lua -i prog
在执行完文件prog中的程序段之后进入交互模式。
另一种运行程序段的方式:dofile
我们可以同时打开两个窗口,一个窗口中使用文件编辑器编辑的代码,另一个窗口中使用交互模式运行lua语言解释器,当修改完代码并保存时,只要在Lua语言交互模式的提示符下执行dofile就可以加载新代码,然后就可以观察新代码的函数调用与执行结果了。
词法规范:
标识符是由任意字母,数字和下划线组成的字符串
下划线+大写字母的标识符通常用作特殊用途
可以将下划线+小写字母用作“哑变量”
Lua 语言对大小写敏感
单行注释:两个连续的连字符(- -);多行注释:两个连续的连字符加两对连续左方括号表示长注释或多行注释的开始,直到两个连续的右括号为止,需要重新启用代码时,在第一行行首添加一个连字符即可。
可以用分号对...
算术表达式Lua 的算术运算符如下表所示:
表达符
备注
+
加法
-
减法
*
乘法
/
除法
^
指数
%
取模
实例123456789print(1 + 2) print(5 / 10) -->打印 0.5。 这是Lua不同于c语言的print(5.0 / 10) -->打印 0.5。 浮点数相除的结果是浮点数-- print(10 / 0) -->注意除数不能为0,计算的结果会出错print(2 ^ 10) -->打印 1024。 求2的10次方local num = 1357print(num % 2) -->打印 1print((num % 2) == 1) -->打印 true。 判断num是否为奇数print((num % 5) == 0) -->打印 false。判断num是否能被5整数
关系表达式
表达符
备注
<
小于
>
大于
<=
小于等于
>=
大于等于
==
等于
~=
不等于
12345print(1 &l...
选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理如下,首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的序列进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。
算法步骤
首先在未排序序列中找到最小元素,存放到排序序列的起始位置
再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。
重复第二步,直到所有元素均排序完毕。
动画演示
Lua 实现
local function selectionSort(arr)
for i = 1, #arr-1 do
local idx = i
-- 迭代剩下的元素,寻找最小的元素
for j ...
contents
</div>
<h2 id="Problem">Problem</h2>
每個變數皆為正整數,給定一個算術表達式和變數之間的大小關係,請問最少產生出來的答案為何。
Sample Input
1234567891011123a+b*c2a>bc>bz*(x+y)3z>xx>yz>ya+b+c+a0
Sample Output
123Case 1: 4Case 2: 9Case 3: 4
Solution
先使用 spfa 找到根據 greedy 策略分配的變數值,如果發生負環情況直接輸出 -1。
然後使用矩陣鏈乘積的 DP 方法進行找到最小答案。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667...
DATASETS人脸数据集,有大约2800多张图片。这里主要讲其用于人脸检测的部分。这个数据集也可以用于做人脸对齐(face alignment)
数据集主要来自于网络上新闻媒体里的图片。经过相似图片剔除后留下大约2800多张。分为10个folder,每个folder300张左右。
EVALUATION接受输入人脸检测上的评测接受两种类型的输入。
一种是常用的矩形框,包括faster rcnn等目前绝大多数人脸检测算法输出都是矩形框。共有5个参数,包括矩形的4个参数以及置信度confidence。
另一种是椭圆框。FDDB给出的ground truth就是椭圆框。以6个参数表示,5个参数表示椭圆,长轴,短轴,中心点坐标以及旋转角度。第六个参数置信度confidence。
评价标准以两条ROC曲线作为FDDB数据集上的评价标准。
ContROC (连续)
DiscROC (离散)
这两条曲线的横轴都是FP(false positive),也就是误检的意思。在人脸检测中,就是说,算法标出了某个框的位置,但是这个框实际上并不存在人脸。所以,对于一个好的算法,这个值应该低,这个用...
<p>思考并回答以下问题:<br>1.LuaEnv luaenv = new LuaEnv();是什么意思?<br>2.luaenv.DoString(“CS.UnityEngine.Debug.Log(‘hello world’)”);是什么意思?<br>3.luaenv.DoString(“require ‘byfile’”);是什么意思?<br>4.luaenv.dispose是什么意思?<br>5.以下划线(_)开头,后面紧随多个大写字母(_VERSION)的变量有什么含义?<br>6.C#中使用哪个命名空间?<br>7.建议的加载Lua脚本方式是?<br>8.直接访问未初始化的全局变量会报错吗?</p>
由于这节课我们会用到xLua的Example和Tutorial,在开始之前需要你将xLua的整个Github源码下载或者Clone下来。https://github.com/Tencent/xLua
下载以后,使用Unity打开下载的源码,x...
Lua是一门很小巧的编程语言,不过使用过程中发下一些容易出现问题的地方,这里记录一下(API正常使用不记录)。记录时使用的版本是官方Lua 5.3.4版本源码.
Lua的table区分数组部分和哈希表部分,数组部分索引从1开始,而不是0-based
Lua的C API中的lua_isstring和lua_isnumber有点坑
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061LUA_API int lua_isnumber (lua_State *L, int idx) { lua_Number n; const TValue *o = index2addr(L, idx) return tonumber(o, &n); // 坑,会执行转换成number类型改动栈}LUA_API int lua_isstring (lua_State *L, int idx) { ...
注释
单行注释两个减号,--
多行注释--[[
内容
--]]
数据类型
Lua是动态类型语言,变量不需要类型定义,只需为变量赋值
数据类型
描述
nil
只有值”nil”属于该类,表示一个无效值(在条件表达式里相当于false)
boolean
false 和 true
number
双精度类型的实浮点数
string
由一对双引号" "或单引号' '表示
function
由C或Lua编写的函数
userdata
表示任意存储在变量中的C数据结构
thread
表示执行的独立线路
table
Lua 中的表(table)其实是一个”关联数组”(associative arrays),数组的索引可以是数字或者是字符串。在 Lua 里,table 的创建是通过”构造表达式”来完成,最简单构造表达式是{},用来创建一个空表。
nil
nil类型表示一种没有任何有效值,它只有一个值”nil”
对于全局变量和table,nil的另外一个作用为删除,给全局变量或table表里的变量赋值nil,等于把它们...