自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (4)
  • 收藏
  • 关注

原创 Lua学习笔记 第二十二章 操作系统库

操作系统库定义在table os中,其中包含了文件操作函数、获取当前日期和时间的函数,以及其它一些与操作系统相关的功能。对文件操作而言,这个库只提供了两个函数,一个是用于文件改名的os.rename函数,另一个是用于删除文件的os.remove函数。 22.1日期和时间在Lua中,函数time和date提供了所有的日期和时间功能。如果不带任何参数调用time函数,它会以数字

2014-08-28 09:57:21 535

原创 Lua学习笔记 第二十一章 I/O库

I/O库为文件操作提供了两种不同的模型,简单模型(simple model)和完整模型(completemodel)。简单模型假设有一个当前输入文件和一个当前输出文件,它的I/O操作均作用于这些文件。完整模型则使用显示的文件句柄。它采用了面向对象的风格,并将所有的操作定义为文件句柄上的方法。21.1 简单I/O模型简单模型的所有操作都作用于两个当前文件。I/O库将当前输入文

2014-08-28 09:51:46 549

原创 Lua学习笔记 第二十章 字符串库

字符串库中的所有函数导出在模块string中。使用时最要采用基于模块的写法,如string.upper(s);20.1 基础字符串函数string.len(s)   —— 返回字符串s的长度string.rep(s, a)—— 可返回字符串s重复n次的结果string.lower(s) —— 返回一份s的副本,将大写字符转换成小写形式string.upper(s) —— 与

2014-08-26 16:29:06 396

原创 Lua学习笔记 第十九章 table库

table库是由一些辅助函数构成的,这些函数将table作为数组来操作;19.1 插入和删除函数table.insert用于将一个元素插入到一个数组的指定位置,它会移动后续元素以空出位置。如果在调用insert时没有指定位置参数,则会将元素添加到数组末尾:t = {}for line in io.lines() do table.insert(t, line)endpr

2014-08-26 15:29:14 509

原创 Lua学习笔记 第十八章 数学库

math库由一组标准的数学函数组成,包括三角函数(sin,cos,tan,asin,acos等)、指数和对数函数(exp,log,log10)、取整函数(floor,ceil)、max和min、生成伪随机数的函数(random、randomseed),abs取绝对值,fmod取模以及变量pi和huge。其中huge为Lua可以表示的最大数字。所有三角函数都使用弧度单位,可以用函数deg和r

2014-08-26 15:26:27 427

原创 Lua学习笔记 第十七章 弱引用table

Lua采用了自动内存管理机制。一个程序只需创建对象,而无需删除对象。通过使用垃圾收集机制,Lua会自动地删除那些已成为垃圾的对象。这减轻了程序员在内存管理方面的负担,更重要的是将程序员从许多内存的bug中(如无效指针、内存泄露)中解放出来。垃圾收集器只能回收那些它认为是垃圾的东西,它不会回收那些用户认为是垃圾的东西。如递减顶部索引后,之前的栈顶元素仍保留在数组中;存储在全局变量中的

2014-08-26 15:24:37 630

原创 Lua学习笔记 第十六章 面向对象编程

Lua中的table就是一种对象。首先,table与对象一样可以拥有状态;其次,table与对象一样拥有一个独立于其值的标识(一个self)。最后,table与对象一样具有独立于创建者的生命周期。在函数中使用全局名称是一个不好的编程习惯。因为这个函数只能针对特定对象工作,并且这个特定对象还必须存储在特定的全局变量中。这种行为违反了对象特性,即对象拥有独立的声明周期。因此需要一个额外的参数来指定

2014-08-26 15:05:22 485

原创 Lua学习笔记 第十五章 模块与包

模块系统的一个主要目标是允许程序以不同的形式来共享代码。要实现共享就需要一些公共的规则。Lua从5.1开始,为模块和包定义了一系列的规则。这些规则不需要语言引入额外的技能,程序员可以使用table、函数、元表和环境来实现这些规则。有两个重要的函数可以很容易通过这些规则,它们是require(用于使用模块)和module(用于创建模块)。程序员可以使用不同的规则来重新实现这两个函数。从用

2014-08-26 14:55:28 659

原创 Lua学习笔记 第十四章 环境

Lua将所有的全局变量保存在一个常规的table中,这个table称为"环境(enviroment)".这种组织结构的优点在于,其一、不需要再为全局变量创造一种新的数据结构,因此简化了Lua的内部实现。另一个优点是,可以像其他table一样操作这个table。为了便于实施这种操作,Lua将环境table自身保存在一个全局变量_G中。示例 —— 打印当前环境中所有全局变量的名称:

2014-08-26 14:46:53 481

原创 Lua学习笔记 第十三章 元表(metatable) 与元方法(meatmethod)

通常Lua中,每个值都有一套预定义的操作集合。这个集合叫做元表。我们可以通过元表来修改一个值的行为,使其在面对一个非预定义的操作时执行一个指定的操作。如两个table相加。元方法是元表中的一个值,这个值应该是一个函数。Lua中的每个值都有一个元表。table和userdata可以有各自独立的元表,而其他类型的值则共享其类型所属的单一元表。Lua在创建新的table时不会创建元表

2014-08-25 18:03:28 558

原创 Lua学习笔记 第十二章 数据文件与持久性

12.1 数据文件像10.1节介绍的那样,可以由table构造式来定义一种文件格式。这项技术也就是将数据作为Lua代码来输出,当运行这些代码时,程序也就读取了数据。示例——原来的数据文件格式:Donald E.Knuth, Literate Programming, CSLI, 1992Jon Bentley, More Programming Pearls, Addisom-

2014-08-25 17:44:04 581

原创 Lua学习笔记 第十一章 数据结构

Lua中的table不是一种简单的数据结构,它可以作为其它数据结构的基础。如数组、链表、队列等。 11.1数组使用整数来索引table即可在lua中实现数组。因此,数组没有一个固定的大小,可以根据需要增长。如:a = {}for i=1, 1000 do    a[i] = 0end也可以使用0、1或者其它任意值来作为数组的起始索引。但如果数组的索引不以1开始,

2014-08-25 17:41:29 396

原创 Lua学习笔记 第十章 完整的示例

参考书本详细示例

2014-08-22 16:11:20 412

原创 Lua学习笔记 第九章 协同程序 —— coroutine

协同程序与线程差不多,拥有自己独立的栈、局部变量和指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。线程与协同程序的主要区别:一个具有多个线程的程序可以同时运行几个线程;而一个具有多个协同程序的程序在任意时刻只能运行一个协同程序,并且正在运行的协同程序只会在其显示地要求挂起时,它的执行才会暂停。 9.1 协同程序基础Lua将所有协同程序的函数放置在一个名为"corouti

2014-08-22 16:03:11 488

原创 Lua学习笔记 第八章 编译、执行与错误

Lua是一种解释型语言,区别解释型语言的主要特征并不在于是否能编译他们,而是在于编译器是否是语言运行时库的一部分,即是否有能力执行动态生成的代码。 8.1编译在Lua中,dofile函数是一种内置操作,用于运行Lua代码块;但实际上dofile只是一个辅助函数,loadfile才做了真正核心的工作。loadfile的两个功能:一是从一个文件中加载Lua代码块,但它不会运行代码,只是

2014-08-22 15:45:24 507

原创 Lua学习笔记 第七章 迭代器与泛型for

7.1 迭代器与closure所谓迭代器就是一种可以遍历一种集合中所有元素的机制;在Lua中,通常将迭代器表示为函数;每调用一次函数即返回集合中的下一个元素;closure(闭合函数)对于迭代器的实现提供了极佳的支持;一个closure结构通常涉及到两个函数:closure本身和一个用于创建该closure的工厂(factory)函数;简单的迭代器示例  ——funct

2014-08-22 15:40:35 408

原创 Lua学习笔记 第六章 深入函数

在Lua中,函数是一种第一类值,它们具有特定的词法域;第一类值表示函数与其他传统类型的值具有相同的权利,函数可以存储到变量中或table中,可以作为实参传递给其他函数,还可以作为其他函数的返回值;词法域是指一个函数可以嵌套在另一个函数中,内部的函数可以访问外部函数中的变量;在Lua中函数与所有其它值一样都是匿名的,即它们都没有名称。当讨论一个函数名时实际上是讨论一个持有某函数的

2014-08-22 15:35:33 405

原创 Lua学习笔记 第五章 函数

在lua中,函数是一种对语句和表达式进行抽象的主要机制。函数既可以完成某项特定的任务,也可以只做一些计算并返回结果;lua为面向对象式的调用也提供了一种特殊语法——冒号操作符。表达式o.foo(o,x)的另一种写法是o:foo(x),冒号操作符使调用o.foo时将o隐含地作为函数的第一个参数;一个lua程序既可以使用lua编写的函数,又可以调用以C语言编写的函数。所有lua标准

2014-08-22 15:33:01 436

原创 Lua学习笔记 第四章 语句

4.1赋值 lua允许多重赋值,也就是将多个值赋予多个变量;每个值或每个变量之间以逗号分隔;lua会将等号右边值的个数调整到与左边变量的个数相一致。如果值的个数少于变量的个数,多余的变量会被赋为nil;若值得个数多余变量的个数,那么多余的值会被丢弃(先丢弃最右边的);多重赋值中,lua会先对等号右边的所有元素求值,然后才执行赋值;这样便可以用一句多重赋值来交换两个变量的值了,如:

2014-08-22 15:30:36 355

原创 Lua学习笔记 第三章 表达式

3.1算术操作符lua支持常规的算术操作符 —— + - * / ^ % -(负号)例如 x^0.5是计算x的平方根  x^(-1/3)是计算x立方根的倒数对于实数x,x%1的结果是x的小数部分,而x-x%1的结果是x的整数部分,x-x%0.01是精确到x小数点后两位的结果; 3.2关系操作符lua提供的关系操作符 = == ~=所有这些操作符的运算结果都是tru

2014-08-22 11:42:13 364

原创 Lua学习笔记 第二章 类型与值

lua是一种动态类型语言;lua中的8种基础类型是:nil, boolean, number, string, userdata, function,thread, table函数type()可根据一个值返回其类型名称; nil是一种类型,只有一个值;一个全局变量在第一次赋值前的默认值就是nil,将nil赋予一个全局变量等同于删除它; boolean类型有两个值fals

2014-08-22 11:25:17 476

原创 Lua学习笔记 第一章 开始

Lua学习笔记第一章一节1.下载安装完lua后,会自带一个lua解释器程序!使用命令 lua hello.lua 便可  运行.lua文件;2.直接在命令行中执行lua解释器便进入交互模式,在这种模式下输入的每条命令  都将立即被执行;3.退出解释器,使用系统函数os.exit() 或快捷键 ctrl+D (windows下是ctrl+Z)4.另一种执行文件的方式是

2014-08-22 11:08:25 431

原创 NULL,空字符串和"\0"

今天在看酷壳网陈硕的关于C++中的string类是

2014-04-17 20:37:51 575

原创 快速排序

快速排序(类似于归并算法)是一种分而治之算法。首先它将列表分为两个更小的子列表:一个大一个小。然后递归排序这些子列表。下面就用分而治之的方法来排序子数组A[p...r];步骤:Divide:从列表中取一个元素作为支点,将数组分为A[p‥q - 1] andA[q + 1‥r] ,A[p ‥ q - 1]中每一个元素都小于A[q] , 而A[q + 1 ‥ r]中每个元素都大

2014-04-17 10:14:20 399

原创 选择排序

选择排序是冒泡排序的一种优化

2014-04-16 20:20:18 386

原创 冒泡排序

/* *冒泡排序 从小到大排序 */#include void bubbleSort(int arr[], int size){    int pos1 = 0, pos2 = 0; // 分别是外层循环和内层循环的下标    for(pos1 = size-1; pos1 >= 1; --pos1)    {        for(pos2 = 0; pos2

2014-04-16 12:23:32 411

原创 汉诺塔问题——递归

#include int loop = 0; // 记录移动次数void hanNuoTa(int n, char a, char b, char c){    if(n == 1)    {        printf("%c ——> %c\n", a, c);        ++loop;    }    else    {        hanNu

2014-04-15 14:32:04 465

转载 求一个无符号整数转化为二进制后1的个数

/* *给出一个整数,求这个整数转化为二进制后1的个数  */#include int numOfOne(int n){    unsigned int flag = 1;    int count = 0;    while(flag     {        if(flag & n)        {            ++count; 

2014-04-14 18:42:03 1047

原创 插入排序

#include void insertSort(int arr[], int size){    int i = 0;    while(i     {        int k = i;        for(k; k         {            if( arr[i] > arr[k])            {            

2014-04-14 16:32:29 724

bootstrap-table-editable.js

可编辑bootstrap的扩展插件,亲测有用!bootstrap table的x-editable实现单元格编辑包含表格的csv、pdf导出,解决数据为Empty的问题和支持自定义样式

2018-01-31

secureCRT 完全注册正式版

SecureCRT and SecureFX v7.1.2 x86 x64完全注册正式版

2014-08-22

Lua程序设计(第二版)

Lua程序设计第二版 pdf 这是介绍Lua最简单易懂的书了。

2014-08-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除