收藏 分销(赏)

策略编程语言用户编程手册.doc

上传人:精*** 文档编号:4770622 上传时间:2024-10-12 格式:DOC 页数:147 大小:1.26MB
下载 相关 举报
策略编程语言用户编程手册.doc_第1页
第1页 / 共147页
策略编程语言用户编程手册.doc_第2页
第2页 / 共147页
策略编程语言用户编程手册.doc_第3页
第3页 / 共147页
策略编程语言用户编程手册.doc_第4页
第4页 / 共147页
策略编程语言用户编程手册.doc_第5页
第5页 / 共147页
点击查看更多>>
资源描述

1、H:精品资料建筑精品网原稿ok(删除公文)建筑精品网5未上传百度图标DTS2.0 策略编程语言 用户编程手册Author : DTS研发部门 Version2.08Revision HistoryDateVersionDescriptionAuthorApprover /11/192.00Initial version.Aaron.Peng /3/162.0.1增加3.3.3.3.5 内部修正命令3.5.2.2 注册要收听的价格3.5.2.5 查找价格更新3.5.4.2 _OnEventOrderResponse回 调Jack.shiPeter.cao /4/22.0.2更新3.5.3.3_O

2、nEventPosition回调Jack.shiPeter.cao /5/272.0.3更新2.1.3的3.API接口关键字2.3.1.1 nil类型和逻辑判断,针对于指针变量作了说明增加3.3.3.2.3 DTSMicroTime3.3.3.3.4 发送Order( 下单、 撤单) 命令,增加了单个Order下单的说明更新3.3.3.3.5内部修正命令更新3.5.2.5查找价格更新3.5.4.2 _OnEventOrderResponse回调更新3.5.5.1 DTSMessageRecordAccess类型3.6系统工具函数,增加3.6.53.6.10部分xuebin.liPeter.ca

3、o /6/202.0.4增加批量撤单接口3.3.3.3.3, 3.3.3.3.6Yousong.ZhangPeter.cao /6/302.0.5增加matlab的接口说明3.7, 增加简单加密的说明3.6.9, 3.6.10。Jack.shiPeter.cao /8/102.0.6增加市场逐笔行情信息 3.5.36.1修改ClosePriceInputFlag的说明增加DTSQUEUEPRICE FIELD一览 6.2Lin.gongJack.shi /9/152.0.7增加2.3.1.2 sys_find的说明更新3.7的matlab图只显示半个6.1增加ETFIOPV说明, 修改VWAP

4、EVEPrice说明更新6.3DTSNewOrderAccess field 一览更新6.4DTSCancelOrderAccess field 一览xiang.shuJack.shi /9/192.0.8增加PriceCondition的说明Jack.shi目录REVISION HISTORYII1.DTS策略编程语言简介11.1DTS策略编程平台及其原理11.2策略在系统平台上的生命周期和运行过程21.2.1策略生命周期21.2.2系统通讯和Event31.2.2.1事件定义31.2.2.2输入输出事件31.2.2.3Buffer flag31.2.2.4事件回调31.2.3策略参数和参数

5、变化回调41.2.4运行策略42.DTS SCRIPT编程基础72.1DTS Script基本语法格式72.1.1语言字符要求72.1.2程序注释72.1.3关键字82.1.4特殊字符的表示112.2变量及变量的作用域112.2.1全局变量及其作用域112.2.2局部变量( local) 及其作用域122.2.3同名的全局变量和局部变量的作用原则122.3类型122.3.1变量内部的类型122.3.1.1nil类型和逻辑判断122.3.1.2string类型及针对string的操作122.3.1.3数值类型及内建的数值计算函数142.3.1.4table类型152.3.2支持的各类型间的自动转

6、换152.3.3显式转换类型152.3.4类型转换时的注意事项162.3.5sys_format函数162.4函数182.4.1函数定义182.4.2函数调用192.4.3对函数的限制192.4.4pcall 函数调用192.5运算符202.5.1逻辑运算符202.5.2算术运算符202.5.3字符串连接运算202.5.4赋值运算符202.5.5比较运算符212.5.6元运算符212.5.7运算符优先级212.6程序控制流程212.6.1顺序结构212.6.2If条件语句212.6.3do 块222.6.4while循环语句222.6.5repeat循环语句222.6.6一般for循环语句22

7、2.6.7用于遍历表的for循环语句( generic for) 232.6.8return和break语句232.7基本容器table242.7.1table的基本概念242.7.2创立和初始化一个table242.7.3table下标的使用242.7.4table的”.”运算符252.7.5顺序存储元素和按key索引元素252.7.6table的insert操作252.7.7table的长度252.7.8table的遍历262.7.8.1全遍历( pairs) 262.7.8.2自然数序遍历( ipairs) 262.7.9table的sort算法( 仅对自然数序table有效) 262.

8、8参考Lua的基本语法272.8.1参考部分Lua的语法和Lua的参考资料272.8.2与Lua的重要不同273.DTS API273.1DTS API简介273.2事件处理273.2.1详细的事件定义和事件属性设置273.2.2事件注册( Client) 283.2.3事件回调详解293.2.4策略参数事件及其回调293.2.5事件内容设置和发送事件303.2.6事件存盘和读取保存事件( DynamicData) 303.3DTS API 变量类型313.3.1用户定义的事件类型313.3.2策略参数类型( DTSParameter) 323.3.3DTS系统类型323.3.3.1用于和一般

9、Script逻辑交换信息的内部类型323.3.3.2时间类型323.3.3.2.1DTSDate323.3.3.2.2DTSTime323.3.3.2.3DTSMicroTime333.3.3.3用于下单和撤单的类型333.3.3.3.1DTSNewOrderAccess333.3.3.3.2DTSCancelOrderAccess333.3.3.3.3DTSBasket容器333.3.3.3.4发送Order( 下单、 撤单) 命令343.3.3.3.5内部修正命令353.3.3.3.6批量撤单接口393.3.4其它系统类型393.4存取数据库信息( StaticData) 393.4.1从

10、数据库取数据( _GetCommonData) 403.4.2更新数据( _UpdateCommonData) 403.5固化系统回调事件413.5.1Timer413.5.1.1启动/停止一个Timer413.5.1.2_OnEventTimer回调413.5.2收听市场价格413.5.2.1DTSPrice类型413.5.2.2注册要收听的Price413.5.2.3_OnEventPrice回调423.5.2.4停止收听价格423.5.2.5查找价格423.5.3收听市场逐笔行情价格433.5.3.1DTSQueuePrice类型433.5.3.2注册要收听的Price463.5.3.3

11、_OnEventQueuePrice回调463.5.3.4停止收听分笔行情价格463.5.3.5查找分笔行情价格473.5.4监视仓位变化473.5.4.1DTSPosition类型473.5.4.2注册要监听的Position473.5.4.3_OnEventPosition回调483.5.4.4停止收听Position483.5.5监听下单回复483.5.5.1DTSExecution类型483.5.5.2_OnEventOrderResponse回调493.5.6监听成交信息503.5.6.1DTSMessageRecordAccess类型503.5.6.2选择需要监听的成交信息503.

12、5.6.3_OnEventExecution回调503.6系统工具函数513.6.1取得策略信息513.6.2取得运行信息513.6.3取得用户信息513.6.4取得环境信息513.6.5取得错误详细描述513.6.6取得下单状态513.6.7取得第一条交易流水信息513.6.8生成全局唯一序列号513.6.9字符串加密513.6.10字符串解密513.6.11停止服务523.6.12写log的函数523.7MATLAB支持523.7.1启动MATLAB engine523.7.2判断MATLAB engine是否启动523.7.3设置MATLAB变量533.7.4获取MATLAB变量533.

13、8一个完整的例子534.完整的语法规则555.LUAEDITOR555.1DTS Lua Editor简介555.2LuaEditor功能介绍575.2.1增加一个新策略575.2.2语法检查595.2.3提交595.2.4发布605.2.5策略管理615.3LuaEditor使用技巧625.3.1LuaEditor对DTSScript语法关键字和符号能自己编辑颜色625.3.2语法错误的提示626.附录636.1DTSPrice field一览636.2DTSQueuePrice field一览656.3DTSNewOrderAccess field 一览656.4DTSCancelOrde

14、rAccess field 一览676.5参考资料681. DTS策略编程语言简介DTS系统策略编程语言是针对DTS程式化套利系统编写套利策略的策略编程语言, 提供灵活的, 具有一般性的编程语言接口, 能够为DTS系统编写高效的策略服务程序。DTS策略编程语言综合了Lua和基于C+的DTS系统API接口, 最终将脚本翻译成C+服务器程序编译执行, 具有灵活高效的特点。DTS策略编程语言由基本DTSScript和DTS系统API 两部分组成, DTSScript提供了基本用户编程逻辑的编写接口, DTSAPI提供了Server编程框架和用户策略逻辑对DTS后台系统数据的访问和使用接口。本手册讨论

15、这种语言的基本组成, 语法特点和具体使用方法, 同时介绍DTS客户端系统附带的LuaEditor的基本功能和使用技巧。1.1 DTS策略编程平台及其原理DTS策略编程平台主要由 DTSClient 下带的 DTS Script Editor( Lua Editor) 为客户端, 配合Strategy Control Server ( SCS) 为服务器端组成。用户编写的策略经过Client端 自带的Event打包解包库( EventCommunicator) , 打包成事件( Event) 发送给SCS, 由SCS内的Script Translator( L2C) 翻译成C+源代码后由GNU编

16、译成策略服务器程序( SS) 。启动时, 由客户端发送启动Event给SCS控制启动SS, 并告知客户端SS端口及ip地址, 由客户端直接Socket链接SS获取策略服务; 停止时, 也由客户端发送停止Event给SCS控制结束SS服务。由于SS是直接编译运行的, 因此拥有效率高的特点; 同时每个客户有自己的策略服务器, 故每个服务器程序负载不会很重, 因此又有稳定, 快速的优点。1.2 策略在系统平台上的生命周期和运行过程1.2.1 策略生命周期要完整地编写一个能用的策略服务器, 需要以下几个步骤: 1. 在Script Editor中编写完整的策略脚本。2. 语法检查经过。3. 提交SVN

17、( 经过SCS) 成功。4. 发布成功( 编译成功) 。当策略被发布成功后, 用户能够在自己的策略管理界面上看到相应的策略; 用户能够选择加载需要的策略版本, 而且运行此策略; 策略一旦运行, 就开始提供既定的服务直到用户停止此策略。策略的生命周期: 1.2.2 系统通讯和EventDTS系统内部各个组成部件间的通讯都是建立在事件( Event) 处理上的, SCS, Client及SS之间信息的互换都是经过Event来完成的。所有的Event都是统一格式存放的, 由包含在Client和Server端程序中的EventCommunicatorLib进行编码/解码。我们能够把Event看作是能够

18、自定义字段的Message。1.2.2.1 事件定义所有用户事件都是能够在脚本中定义的。以下例程定义了一个最简单的事件, _DefineEventObject TestEvent _AS _Output_DefFld(TestField,_String ,12);_End这个Event被定义为包含一个名叫”TestField”的字段, 字段类型为String类型, 长度为12。事件定义和处理被做为一种DTSAPI的特性将在第3章 节中详细介绍。1.2.2.2 输入输出事件做为策略编程语言, DTSScript写好的脚本最终会被编译成策略服务器程序( SS) ; 相对SS来说是输入的Event被

19、认为是输入事件, 例如Client向SS传送的参数能够被认为是一个In事件; 相反的, SS发送出去的事件被认为是Out事件, 如上面的例程就是定义了一个Out事件, 填写完整这个TestEvent后, SS能够创立一个Out事件的实例而且经过API将这个实例发送给所有监听这个事件的客户端( 可能是DTSClient端或者另外一个SS) 。1.2.2.3 Buffer flag由于系统中所有的通讯都被认为是事件处理, 也就是说所有的Server, Client和Server之间都是基于一方发送Out事件, 一方接收事件并触发回调来达到交换信息的目的, 这样, 为了能够使不同时间连接上来的客户端

20、能够收到完整的Event流, Event被设计成带有一个Buffer标志, Buffer Flag一共有3种值, 0代表没有Buffer, 即后来连接上来的Client不会接收到连接上来之前Server已经发送过的Event; 1代表list类型的Buffer, 即后来连接上来的Client能够收到符合条件的自Server启动以来发送过的所有这种类型的Event, 而且是按事件顺序排列的; 2代表map类型的Event, 即后来连接上来的Client能够收到所有以某个字段为Key的Server已经发送过的Event, 重复Key的Event只保留最新的一个。有了这2种buffer, 像诸如HD

21、S( Historical Data Sever) 这种需要保留历史数据的服务器也能够用策略来描述了。1.2.2.4 事件回调对于接收别的Server或Client发送的事件一方的Server或Client, 只需要知道接收的是来自哪里的什么Event就能够了: _RegisterEventObject(PortfolioID=P 0901, StrageyID= 0901,EventID=TbtPEvent,condition=IssueCode#issueCode1,issueCode2,issueCode3)使用_RegisterEventObject命令能够注册与什么策略服务器连接,

22、并取得什么Event。当连接建立后, 每当那个策略服务器向外发送既定的Event, 接收方就会收到一条Event的回调: _OnEventDefined(TbtPEvent evt) -用户逻辑_End 收到Event回调后, 接收方就经过_OnEventDefined接口回调函数执行既定的用户逻辑。1.2.3 策略参数和参数变化回调在DTS2.0系统中, 所有的系统间交互都是经过Event完成的, 因此策略服务器的输入参数实际上也是一种特殊的Event。输入参数Event做为一种特殊Event, 被设计为是同时拥有Input和OutPut属性的Event, 做为Input Event( 客户

23、端向SS发送参数值) , 其Buffer Flag为0, SS只需要最新的参数; 而做为Output Event ( SS返回给客户端的Ack) , 其Buffer Flag为2, Key是一个永远为1的值, 这样能够保留最新一个Ack也能被Client收到, 防止Client重启后参数不同步的情况。所有定义的参数都会在策略服务器中对应一个同名同类型的全局变量, 脚本中能够直接使用这些参数, 同时当参数值变化时, Client端发送来的参数变化也会被同步到这些全局变量中。能够经过_DefineStrategyParameters关键字定义一组策略Server的参数, 并经过_OnEventPa

24、rameterChanged(DTSParameter parameter) 回调来处理从客户端发送过来的参数变化: _DefineStrategyParameters_String issueCode1_String issueCode2_String issueCode3_Number factor1_Number factor2_Number factor3_Number constant_String periodType_String periodCount_End_OnEventParameterChanged(DTSParameter parameter) -用户处理逻辑_End

25、1.2.4 运行策略当策略被发布好以后, DTSClient中的策略管理页面也就有了相应的策略列表: 在需要启动此策略的模型中添加此策略: 启动策略: 停止策略: 2. DTS Script编程基础2.1 DTS Script基本语法格式2.1.1 语言字符要求DTS Script中的名字( 变量名, 函数名, Table的字段名等标识符) 能够由任意字母, 数字和下划线组成, 可是不能以数字开头, 由于DTS API( 将在第3章详细介绍) 关键字以”_”开头, 因此应尽量避免使用”_”做为名称的起始符号, 以避免和系统关键字相互冲突。DTS Script 是严格区分大小写的, 比如Text

26、和text是不同的变量名, 能够用来代表不同的2个变量。DTS Script中的字符串能够是以一对单引号( ) 引起或者一对双引号( ”) 引起的一串字符, 内容里能够支持任意字符, 包括中文, 系统传输和翻译中不会改变字符的编码方式, 可是为了终端显示和避免编码解码方式不同带来的麻烦, 建议统一使用utf-8编码方式( 注意不要使用带signal的UTF-8编码, 头标记会被认为是非法字符) 。对于_开头的函数, 一般认为是系统保留的函数名, 建议尽量避免使用。对于”DTS”开头的词, 一般认为是系统API数据类型, 请不要使用其命名一般变量和函数等。名字, 函数调用和关键字, 算符等之间以

27、空白分隔, 空白能够是任意的空白, 不限数量和种类, 包括 空格( ) , TAB( t) , 分割符( f) 和分行/回车( rn, r, n) 。DTS Script各个段( 声明, 结构, 语句等) 间能够以分号( ;) 分隔, 也能够以上述的空白分隔。可是有一种情况必须用分号分隔: local a - 1b = ”b” - 2_String str = b -3由于DTS API允许定义带类型限定( 如上例第3行, 限定str为_String类型) 的变量, 而某些自定义类型名也可能使用名字( Identifier) , 因此对上例中1, 2行中的a和b中的a, Script翻译器不能

28、确定其是b的类型限定名还是一个变量定义, 因此这种情况下, a b间必须加一个分号分隔2个语句: local a ; - 1b = ”b” - 2_String str = b -3DTS Script支持各种数字表述方式, 包括整数, 负数( -) , 小数( 带小数点.) , 16进制数( 0x) 和科学计数法表示的数值: 3 3.0 3.1416 314.16e-2 0.31416E1 0xff 0x562.1.2 程序注释DTS Script采用Lua的程序注释形式, 分为行注释和块注释2种: DTS Script使用- 来表示行注释, 例如: a = alon123 - Assign

29、 alon123to aDTS Script 采用 - 对来表示块注释, 例如: - DTS Script CommentCopyRight DragonSoft2.1.3 关键字DTS Script 关键字分为一般关键字, 运算符和系统API关键字3部分。关键字不能当作名字( 标识符) 使用。拥有系统给定的含义。DTS Script 一般关键字有: 关键字含义关键字含义关键字含义关键字含义and逻辑与break跳出循环do块开始else非条件end块结束false布尔假forFor循环function函数声明inTable inlocal本地声明nil空not逻辑否repeatRepeatr

30、eturn返回thenThentrue真whileWhileelseifelse ifif条件语句or逻辑或untilRepeat注意: 1. nil 表示DTS Script的空, 与NULL意义相近但不是NULL。2. elseif 为连写的else if, 和其它语言不同, 不能写成分开的else if。DTS Script 运算符和关键符号: 关键符号含义关键符号含义关键符号含义HUGE_VAL最大数+加号-减号*乘号/除号%取余乘方=赋值=等于=不等于=大于等于大于小于( 小括号左) 小括号右方括号左方括号右大括号左大括号右;分号, 逗号.点号.字符串连接不定参DTS API 关键字

31、: 1. DTS 开头的标识符: DTS 开头的标识符表示DTS系统内部类型, 不能做为名字( 标识符) 使用, 例如: DTSBasket basket = _CreateBasket()其中DTSBasket表示basket 是一个DTSBasket类型的变量, 与一般类型( 不带类型定义的变量) 不同, 每种DTS系统内部类型的实例都拥有自己特有的方法和构造方式, 这部分请参见第3章和第6章。2. sys_ 开头的函数名: sys_ 开头的函数都是系统内建函数, 也就是系统内部提供的已经写好的函数, 有自己的用法和功能。如: sys_format(”%f”, 3.14)输出一个STRIN

32、G型的”3.14”; 这部分函数会在以后的各节中一一列举其形式和功能。3. API 接口关键字类型关键字: 关键字对应类型关键字对应类型关键字对应类型_Booleanbool_Intint_DecimalBDecimal_BigIntegerBBigInteger_StringBString_Doubledouble事件字段类型: 关键字对应类型关键字对应类型_Booleanint_Numberdouble_StringBString_Metachar*事件类型关键字: 关键字事件类型关键字事件类型_Input对SS来说为输入事件_Output对SS来说为输出事件事件时间Key类型: 关键字含

33、义关键字含义关键字含义_EventYearType按年_EventMonthType按月_EventWeekType按周_EventDayType按日_EventMinuteType按分_EventOtherType其它文件索引类型关键字: 关键字含义关键字含义关键字含义_DataYearType按年_DataMonthType按月_DataWeekType按周_DataDayType按日_DataOtherType其它数据库操作辨识符: 关键字含义关键字含义关键字含义_Insert插入_Modify修改_Delete删除DTS API 中的其它关键字: _DefineEventObject定

34、义一个事件。_AS定义事件类型( in、 out) 。_End回调段结束符。_DefKeyField定义事件主键。_DefFld定义事件字段。_SetBufferedFlag定义事件Buffer Flag。_GetBufferedFlag得到事件Buffer Flag。_SetDataType设置事件数据类型。_GetDataType得到事件数据类型。_SetDataInterval设置事件数据发送间隔。_GetDataInterval得到事件数据发送间隔。_SetTimeKey设置事件时间键。_GetTimeKey得到事件事件键。_SetFld设置事件字段值。_GetFld得到事件字段值。_

35、CreateEventObject创立一个事件实例。_CreateDynamicData创立一个动态数据。_GetFileType得到文件类型。_SaveData保存至文件。_Clear清空数据。_GetDynamicData得到保存的动态数据, 和OnDynamicData为同步回调。_OnDynamicData得到动态数据的回调。_GetCommonData获取静态数据, 和OnCommonData为同步回调。_OnCommonData得到静态数据的回调。_UpdateCommonData更新、 插入、 删除静态数据。_DefineStrategyParameters定义策略服务器参数。_

36、OnEventParameterChanged策略服务器参数变化回调。_RegisterEventObject注册事件。_OnEventDefined事件回调。_EventName事件回调名字标识。_EventID事件ID标识。_OnEventTimer定时器回调。_EndTime定时器终止事件标识。_Interval定时器时间间隔标识。_TimerName定时器名字标识。_OnEventPrice价格回调。_PriceName价格函数名字标识。_IssueCode证券号码标识。_MarketCode市场标识。_OnEventPosition仓位变化回调。_OnEventExecution成交

37、回调。_OnEventOrderResponse下单回复回调。_RegisterExecution注册监听成交。_SendToClients发送事件给客户端( 监听者) 。_Stop停止策略服务。_RegisterPrice注册监听价格。_StopPrice停止监听单个价格。_StopAllPrice停止监听所有价格。_RegisterPosition注册监听仓位变化。_StopPosition停止监听仓位变化。_StartTimer启动定时器。_StartTime定时开始时间标识。_MaxNumber定时器最大跳数标识。_StopTimer停止定时器。_createPortfolioOrde

38、rs得到模型下所有Order的Basket。_SendOrders发送Order( 下单、 撤单等) 。_CancelOrders撤单( 已废止, 现在使用_SendOrders撤单) 。_GetPortfolioID取得模型ID。_GetStrategyVersion取得策略版本号。_GetStrategyID取得策略号。_GetPortfolio取得模型数据。_GetDealerID取得用户ID。_GetPortfolioContent取得模型信息。_GetFileRoot取得动态数据文件存放的根目录。_GetHostname取得主机名。_GetServicePort取得服务端口。_Get

39、ProcessID取得服务进程号。_GetWorkstationNo取得服务器号。_GetStartTime取得服务开始事件。_CreateBasket创立一个篮子( basket) 。_CreateBasketCancelBasket 创立一个篮子撤单的篮子( basket) 。_CreateNewOrder创立一个空的NewOrder, ( 下单用) 。_CreateCancelOrder创立一个空的CancelOrder, ( 撤单用) 。_CreateManualNewAccept创立一个ManualNewAccept, ( 无参数时表示创立一个空容器, 有参数时表示创立一个用于补委托

40、的内部修正命令) 。_CreateManualNewReject创立一个ManualNewAccept, ( 撤消委托用) _CreateManualExecution创立一个ManualExecution, ( 无参数时表示创立一个空容器, 有参数时表示创立一个用于补成交的内部修正命令) 。_CreateCancelExecution创立一个ManualExecution, ( 撤消成交用) 。_CreateGlobalUniqueKey生成一个全局唯一序列号。_CreateAESEncrypt对字符串进行加密。_CreateAESDecrypt对字符串进行解密。_DestroyBasket

41、销毁一个Basket。_WriteAplLog写入APL log。_WriteErrorLog写入Error log。_GetNowTime取得当前系统时间( 精确到秒) 。_GetNowMicroTime取得当前系统时间( 精确到微秒) 。_GetNowDate取得当前系统日期。_onSubmitStatusChange能够下单状态回调。_GetShmOrderDetail根据内部委托号取得对应下单状态。_GetFirstShmMessage根据内部委托号取得对应下单的第一条交易流水信息。_GetLastError取得最近一次错误的详细描述。API关键字代表的函数和回调的用法和作用将在第3章

42、做详细介绍。注意: 因为最终将会被翻译成C+编译执行, 因此所有C+的关键字都是DTS Script的隐式关键字, 不能够被做为名字( 标识符) 使用, 如 int, long, string, double, default, continue, switch等等。2.1.4 特殊字符的表示DTS Script中String下的一些控制字符和被用作标识符而不能使用的字符的表示, 和其它语言一样, 使用做为转义符, 例如: 表示 。” 表示 ” 。 表示 。n r rn表示回车, t 表示TAB等。2.2 变量及变量的作用域变量分为全局变量和局部变量, 有不同的作用域和定义方式。2.2.1 全局变量及其作用域在任何地方定义一个一般变量, 这个一般变量都会被认为是一个全局变量, 例如: a = 1if a = 1 then b = 2else b = 1end这里a 和 b都是全局变量, 即使出了if块, b依然有效。如果在end后将b记入log, log中将

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服