我的笔记
来源:互联网 发布:网络聊天工具 编辑:程序博客网 时间:2024/05/23 20:07
笔记
内容来自lua程序设计第二版
一、语句
1.赋值
lua允许多重赋值。如:a,b=4,12
如果值的个数少于变量个数,多余的变量会被赋值为nil,如果值的个数多余变量个数,多余的值会被忽略。
a,b,c=0,1print(a,b,c) —>0 1 nila,b=a+1,b+1,b+2 print(a,b,c) —>输出a+1,b+1。b+2被忽略
如果要初始化一组变量,需要为每个变量提供一个值:
a,b,c=0print(a,b,c) —>0 nil nil正确写法:a,b,c=0,0,0print(a,b,c) —>0 0 0
2.局部变量与块
局部变量用local语句创建,作用域仅限于声明它的那个程序块
a=10 --全局变量local b=12 --局部变量
尽可能使用局部变量是种好的编程风格,可避免将无用的名称引入全局环境。另外,访问局部变量比访问全局变量更快。
3.控制结构
(1)if then else
if语句先测试条件,然后根据结果执行then或者else。else部分是可选的。
(2)while
先判断条件,如果为真则执行循环,为假结束循环。
(3)repeat
repeat-until语句重复执行循环体直到条件为真时结束。判断在循环之后执行,因此循环体至少运行一次。
(4)数字型for
语法:
for 语句1,语句2,语句3do执行语句end相当于java中for(i=1,i<=10,i++){ int num=0; num+=i; print(num);}for(变量初始化值,条件语句,迭代语句){ 执行语句;}
在lua中语句3是可选的,如果不写的话,默认为1。如果不想给循环设置上限,使用math.huge,网上查不到关于这个常量的太多信息。
for i=1,math.huge do if(0.3*i^3-20*i^2-500>=0) then print(i) break endend
(5)泛型for
泛型for可以通过迭代器(iterator)函数来遍历所有的值.
--打印数组a所有的值a={3,54,34,1}for i,v in ipairs(a) do print(v)end
ipairs是一个用于遍历数组的迭代器函数,每次循环中,i被赋予一个索引值,同时v被赋予对应该索引的数组值。
—打印table t中所有的keyt={3,54,34,1,8}for k in pairs(t) do print(k)end
标准库提供的几种迭代器:
迭代文件中的每行(io.lines)
迭代table元素(pairs)
迭代数组元素(ipairs)
迭代字符串中单词(string.gmatch)
泛型for循环和数字型for循环有2个相同点:
1、循环变量是循环体的局部变量
2、循环变量不应赋值
泛型for例子:days表对应每天的英文,现在要将每天的英文转换为一周中对应的第几天。lua中可创建逆向table,这里命名为revdays,它以每周中的每天作为索引,位置数字作值:
days={"sd","md","td","wd","td","fd","std"}revdays={}for k,v in pairs(days) do revdays[v]=k;endx="std"print(revdays[x])
4、break与return
break跳出内部循环(for、repeat、while),不改变外循环。
return用于从函数中返回结果,或用于简单结束一个函数的执行。每个函数结尾处都有一句隐式的return。函数没有值需要返回,那么就不需要添加return。
二、函数
快捷键
- 加粗
Ctrl + B
- 斜体
Ctrl + I
- 引用
Ctrl + Q
- 插入链接
Ctrl + L
- 插入代码
Ctrl + K
- 插入图片
Ctrl + G
- 提升标题
Ctrl + H
- 有序列表
Ctrl + O
- 无序列表
Ctrl + U
- 横线
Ctrl + R
- 撤销
Ctrl + Z
- 重做
Ctrl + Y
Markdown及扩展
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]
使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。
本编辑器支持 Markdown Extra , 扩展了很多好用的功能。具体请参考Github.
表格
Markdown Extra 表格语法:
可以使用冒号来定义对齐方式:
定义列表
- Markdown Extra 定义列表语法:
- 项目1
- 项目2
- 定义 A
- 定义 B
- 项目3
- 定义 C
定义 D
定义D内容
代码块
代码块语法遵循标准markdown代码,例如:
@requires_authorizationdef somefunc(param1='', param2=0): '''A docstring''' if param1 > param2: # interesting print 'Greater' return (param2 - param1 + 1) or Noneclass SomeClass: pass>>> message = '''interpreter... prompt'''
脚注
生成一个脚注1.
目录
用 [TOC]
来生成目录:
- 笔记
- 快捷键
- Markdown及扩展
- 表格
- 定义列表
- 代码块
- 脚注
- 目录
- 数学公式
- UML 图
- 离线写博客
- 浏览器兼容
数学公式
使用MathJax渲染LaTex 数学公式,详见math.stackexchange.com.
- 行内公式,数学公式为:
Γ(n)=(n−1)!∀n∈ℕ 。 - 块级公式:
更多LaTex语法请参考 这儿.
UML 图:
可以渲染序列图:
或者流程图:
- 关于 序列图 语法,参考 这儿,
- 关于 流程图 语法,参考 这儿.
离线写博客
即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入write.blog.csdn.net/mdeditor即可。Markdown编辑器使用浏览器离线存储将内容保存在本地。
用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常情况下,内容不会丢失。用户再次打开浏览器时,会显示上次用户正在编辑的没有发表的内容。
博客发表后,本地缓存将被删除。
用户可以选择 把正在写的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。
注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱。
浏览器兼容
- 目前,本编辑器对Chrome浏览器支持最为完整。建议大家使用较新版本的Chrome。
- IE9以下不支持
- IE9,10,11存在以下问题
- 不支持离线功能
- IE9不支持文件导入导出
- IE10不支持拖拽文件导入
- 这里是 脚注 的 内容. ↩
- 我的笔记
- 我的Struts笔记
- 我的笔记~
- 我的seo笔记
- 我的java笔记
- 我的笔记(转载)
- 我的JSF笔记
- 我的网络笔记
- 我的笔记
- 我的Linux笔记
- 我的笔记
- 我的学习笔记
- 我的 memcache 笔记
- 我的笔记
- 我的笔记
- 我的网络技术笔记
- 我的笔记
- 我的笔记
- CF
- qt 多核编译+源码调试
- VS 2013+Pcl 1.7.2 安装配置及常见问题
- leetcode-第二周
- boost 多线程条件变量
- 我的笔记
- 华科历年考研上机题整理
- 移动web开发常用的框架(四)
- 13-15 标准IO之fread、fwrite
- 机器学习算法-朴素贝叶斯分类
- 5.freeswitch架构
- windows运行打开服务命令
- Android 开发软件架构思考以及经验总结
- CodeForces 322D 想法题