Lua面向对象 对象由属性和方法组成。Lua中最基本的结构是表,因此可以使用表描述对象属性,用Lua的函数来表示方法。即,Lua中的类可以通过表+函数模拟出来。至于继承,则可以通过元表模拟出来(不推荐使用,在Lua中模拟最基本的对象特性,通常情况下就够用了)。 一、Lua中的面向对象 Lua中的表在某种意义上就是一种对象。我们可以使用表和函数实现面向对象,将函数和相关数据放置于同一个表中就形成了一个对象。我们来看 2020-12-21
Lua元表 在Lua中,一个表可以通过key访问到对应的value,但是无法直接对两个表进行操作。因此,Lua提供了元表(metable),它允许改变表的行为,而每个行为都会有对应的元方法。 一、理解Lua元表 Lua中,元表的表现行为类似与C++中的操作符重载。比如,我们可以通过重载__add元方法,来计算两个Lua数组的并集,如下示例: 1234567891011121314151617181920212 2020-12-20 Lua #Lua元表
集群部署2:搭建一个完整的Kubernetes集群 todo 一、准备工作 首先,准备机器。最好能有三台或三台以上的机器,虚拟机和物理机都行。这些机器最好能满足如下要求: 2核CPU、8GB内存; 30GB磁盘(注:磁盘上要有未使用的分区,否则就要多加一块为使用的磁盘); 64位的Linux操作系统、3.10 及以上的内核版本; 内网互通; 能访问外网; 禁用防火墙和Swap; 然后,实际部署前我们先明确一下目标: 在所有节点上安装 Dock 2020-12-18 容器 #Kubernetes
Lua Table库 Lua表的功能十分强大,几乎能存储Lua中的所有数据类型。在Lua编程中经常会对表进行一些操作,Lua内建了一些操作表的函数,通过它们可以极大的提高编程效率。 一、getn getn函数用于获取表的长度,等同于一元操作符#,其语法为: 1table.gent(t) 我们来看如下代码: 12345678910111213local t = {1,2,3,4}print(table 2020-12-17 Lua #Table库
Lua数据类型 Lua是动态类型语言,因此,变量不需要类型定义,只需要为变量赋值。而值可以存储在变量中,作为参数传递或作为结果返回。在Lua中,有8种基本数据类型: nil:无效值,在条件表达式中相当于false。该类型只有nil这一个值 boolean:布尔值,包含两个值false和true number:数字,Lua中的数字实际上是双精度类型的浮点数 string:字符串,由一对 单引号 / 双引号 / 双 2020-12-17 Lua #Lua、数据类型
Lua String库 一、byte 二、char char函数用于索引 ASCII 码。其语法如下: 1string.char(...) 它可以接收0个或多个整数(范围为:0~255),并会返回这些整数所对应的ASCII字符所组成的字符串。当参数为空时,默认是0。我们来看如下代码: 12print(string.char())print(string.char(97,98,99)) 其执行结果为: 12abc 该函数适 2020-12-15 Lua #Lua、String
Lua错误处理 程序运行中进行错误处理是必须的。任何语言在运行过程中都会出现不可预期的错误,如果不注重错误处理,就有可能会造成信息泄露,程序无法正常运行等情况。 一、错误类型 在任何语言中,都会出现错误。Lua的错误类型有语法错误、运行错误。 1.1、语法错误 1.2、运行错误 二、抛出错误 2.1、error函数 error函数用于显示的抛出一个错误,它会终止正在执行的程序,并输出错误信息。需要注意的是,err 2020-12-14 Lua #错误处理
集群部署1:理解kubeadm todo 一、容器化Kubernetes的难点在哪? 我们知道,Kubernetes的每一个组件都是一个需要被执行的、单独的二进制文件。像Ansible这样的运维工具或者由社区维护的部署脚本,就是把这些二进制文件传输到指定的机器当中,然后编写控制脚本来启停这些组件。 在学习了容器技术之后,我们可能会萌生这样的想法:是否使用容器部署Kubernetes?这样,我们只要为每个组件做一个容器镜像,然后在 2020-12-14 容器 #Kubernetes、kubeadm
一个简单API Server框架 在前面的文章中,我们讨论REST相关的概念,以及REST在OpenResty中的应用。接下来,我们尝试使用OpenResty中搭建一个简单的API Server。 一、需求 实现一个能计算加减乘除的数学计算器 二、实现 我们先来看看一个最简陋的实现版本: 123456789101112131415161718192021222324252627282930313233343536373839404 2020-12-09 OpenResty #API Server框架
API的设计 OpenResty最擅长的应用场景之一就是API Server。一提到API Server我们的脑海里一定会冒出许多与REST相关的概念,下面我们来看看在OpenResty中如何实现REST风格的API Server。 一、为什么要使用REST 首先,我们先来看看不采用REST的API Server长什么样,如下示例: 123456789101112131415161718192021222324 2020-12-09 OpenResty #Web服务、REST