理解专题提供理解的最新资讯内容,帮你更好的了解理解。
有几个问题,阅读它们并没有帮助我.在Eric Evans DDD中,他使用地址在某些情况下作为值类型的示例.对于邮购公司而言,地址是一种值类型,因为如果地址是共享的,并且其他人住在地址,只是包裹到达地址并不重要. 这对我来说很有意义,直到我开始考虑如何设计它.鉴于第99页的图表,他有这样的: +------------+ |Customer | +------------+ |custome
    玩WOW已经有半年了,蹭了半年电脑,在兄弟的带领下把小战士升级到了70,就放在那没动了,呵呵。本身是学计算机的,不能荒废了学业哈,所以就开始研究起LUA,想做个属于自己的插件,虽说照着网上的教程可以写出来个简单的插件,可是自己硬是硬着头皮啃了下ACE3库,这几天终于有点眉目了,慢慢来,打算每天写一点,终有一天会把那玩意搞透的哈,呵呵。     废话少说,开始第一篇--《LibStub》  
   1.函数介绍       1.1 LUA函数,跟别的编程语言函数定义大同小异,从另一方面说,它可以被看成是对表达式或语句的抽象机制,怎么说呢,函数分为有返回值与无返回值两种。对于没有返回值的函数而言,相当于将一条或多条语句封装起来执行,以便达到完成某项功能的目的。对于有返回值(return)的函数,相当于是一条表达,即最终会以一个结果返回被调用处。       1.2 LUA函数的定义如下
Lua的object定义在lobject.h文件中。Lua中总有有9种数据类型:nil, boolean, lightuserdata, number, string, table, userdata, thread, function,用数字0-8来表示: #define LUA_TNIL 0 #define LUA_TBOOLEAN 1 #define LUA_TLIGHTUSERDATA
lua function 语言 c struct class 目录(?)[-] 向lua中注册c函数的过程是通过lua_pushcclosureL f n函数实现的 现在来解析这个C闭包被调用的过程注意 这里只涉及C闭包的调用 lua的闭包是个新概念,理解它需要个过程。今天在网上找了几篇文章看,不错,先记录下。 1,lua闭包普通篇 http://hi.baidu.com/happynp/blog
lua栈理解及lua和C++的数据交换API介绍 .(转)   2012-08-14 16:56:06|  分类: Bolt&Lua|举报|字号 订阅 1. 理解lua的栈到底是什么?     lua的栈类似于以下的定义, 它是在创建lua_State的时候创建的:            [cpp]  view plain copy print ? TValue stack[max_stack_l
本文转自:http://hi.baidu.com/xuyuqiang/blog/item/29aa10f2529cba14b17ec51b.html 如果你对lus语言的中weak table不明白的话,那这篇文章应该对你有帮助。 所有脚本语言几乎都有垃圾回收器(GC),当然lua也有。 不明白GC不要紧,下面让我来解释: 这一切要先从现代编程语言的鼻祖 — C语言开始。 如果你在C中要使用变量,
      注:原文也在公司内部论坛上发了         Lua与C交互的栈是一个重要的概念。文章首先解释了为什么要引入Lua栈,然后对访问栈常用的API进行了总结,并使用这些API的注意事项,最后从Lua源代码来看栈的实现原理。 Lua栈概述       我们知道Lua是一种嵌入式语言,所有的Lua程序最后都需要通过Lua解释器(即Lua虚拟机)把其解析成字节码的形式才能执行。 一方面,我们可
1.闭包理解与介绍:http://blog.csdn.net/ym012/article/details/7208750 2.递归与尾递归总结:http://www.cnblogs.com/Anker/archive/2013/03/04/2943498.html 3.METATABLE, 多重返回值, 迭代器: http://www.cnblogs.com/apexaddon/articles/
1. 第六章深入函数中 function newCounter() local i = 0 return function() i = i + 1 return i end end c1 = newCounter() print(c1()) --->1 或print(newCounter()())---->1 或print(c1)------
0、可以将一个table想象成一种动态分配的对象,程序仅仅持有一个对他们的引用(或指针),Lua不会暗中产生table的副本或创建新的table。table永远是匿名的(anonymous),一个持有table的变量与table自身没有固定的关联性。感觉与python完全类似。      Lua中怎么分配一块大的连续的数组,只用语言本身。table.insert不行。      table中有那些
5.1之前, 全局变量存储在_G这个table中, 这样的操作: a = 1  相当于: _G['a'] = 1 但在5.2之后, 引入了_ENV叫做环境,与_G全局变量表产生了一些混淆,需要从原理上做一个理解。 在5.2中,  操作a = 1 相当于 _ENV['a'] = 1 这是一个最基础的认知改变,其次要格外注意_ENV不是全局变量,而是一个upvalue(非局部变量)。 其次,_ENV[
转自: http://tieba.baidu.com/p/2208184626 5.1之前, 全局变量存储在_G这个table中, 这样的操作: a = 1 相当于: _G['a'] = 1 但在5.2之后, 引入了_ENV叫做环境,与_G全局变量表产生了一些混淆,需要从原理上做一个理解。 在5.2中, 操作a = 1 相当于 _ENV['a'] = 1 这是一个最基础的认知改变,其次要格外注意_
首先看一段小小小程序 //test.lua function printmsg()   print("hello world")   end      x = 10   //test.c #include <stdio.h>   #include <unistd.h>      #include <lua.h>   #include <lauxlib.h>   #include <lualib.h
我想这个应该是和“短路求值”相关。 因为: a and b: 如果a为false,那么b的结果是false还是true已经不重要,因为整个表达式的结果已经是false了,所以直接返回a就可以了 同理,a or b:如果a为true,那么b的结果是false还是true已经不重要,因为整个表达式的结果已经是true了,所以直接返回a就可以了 这是一种优化,避免不必要的计算(例如b是一个较复杂的表达式
http://my.oschina.net/wangxuanyihaha/blog/186401 coroutine基础 Lua所支持的协程全称被称作协同式多线程(collaborative multithreading)。Lua为每个coroutine提供一个独立的运行线路。然而和多线程不同的地方就是,coroutine只有在显式调用yield函数后才被挂起,同一时间内只有一个协程正在运行。 L
function f1() local i = 1000 print("f1,i="..i) function f2() i = i + 1 print("f2,i="..i) function f3() i = i + 1 print("f3,i="..i) end f3() end f2() end a = f1 a() a2 = f2 a
原地址:http://www.voidcn.com/article/p-sfdgisjy-bag.html   本文首先通过具体的例子讲解了Lua中闭包的概念,然后总结了闭包的应用场合,最后探讨了Lua中闭包的实现原理。   闭包的概念     在Lua中,闭包(closure)是由一个函数和该函数会访问到的非局部变量(或者是upvalue)组成的,其中非局部变量(non-local variab
本文首先通过具体的例子讲解了Lua中闭包的概念,然后总结了闭包的应用场合,最后探讨了Lua中闭包的实现原理。 闭包的概念 在Lua中,闭包(closure)是由一个函数和该函数会访问到的非局部变量(或者是upvalue)组成的,其中非局部变量(non-local variable)是指不是在局部作用范围内定义的一个变量,但同时又不是一个全局变量,主要应用在嵌套函数和匿名函数里,因此若一个闭包没有会
http://www.zhihu.com/question/21483863# coroutine基础 Lua所支持的协程全称被称作协同式多线程(collaborative multithreading)。Lua为每个coroutine提供一个独立的运行线路。然而和多线程不同的地方就是,coroutine只有在显式调用yield函数后才被挂起,同一时间内只有一个协程正在运行。 Lua将它的协程函数