Lite 是我设计开发的一门编程语言,主要关注如何设计更简洁的语法,经过两年改进,现在只需要很少的代码量就可以表达现代编程语言的大部分逻辑,去掉了关键字设计。

目前仍在持续改进中,欢迎到 Github 提意见,走过路过别忘了点个 Star 。

变量声明

在 Lite 中,变量声明的格式为

# id type #

a int

是的,不需要关键字开头,只需要用空格分割,后面部分就是类型。

也不需要 ; 结尾,编译器会根据特定换行规则断句,除非想在一行内写多个语句,就可以加上 ;。

Lite 是一门强类型语言,大部分时候都需要明确的类型,但是有丰富的自动推导特性节省代码。

赋值

一句话带过。

# id = value #

a = 0

声明时初始化

把前面两个连起来就可以了。

# id type = value #

a int = 0

Lite 具有自动推导特性,所以类型可以省略,然后就和赋值语句一样了。

编译器会分析是否存在变量,如果变量不存在就会自动声明。

a = 0 # 创建变量 #

a = 1 # 赋值 #

注释

Lite 使用 # 来表示注释,用前后两个包住内容即可。

#

注释

注释

注释

#

基础类型

快速带过

a int = 100000000 # i8 = sbyte,i16 = short,int = i32 = int,i64 = long #

b num = 3.141592653 # f32 = float,num = f64 = double #

c bool = true # bool = bool #

d str = "hello" # str = string #

e any = 0 # any = object #

字符串插值

可能在其它语言里我们经常会图方便使用 + 拼接字符串。

var txt = "hello" + integer.ToString() + "world!";

现代语言会提供特殊的插值语法加糖。

var txt = "hello $integer world!";

Lite 更直接一些,省略掉 + 就可以达到插值效果,前后被字符串包围的值会被自动插值。

txt = "hello" integer "world!"

基本操作符

快速带过

a = 4

b = 2

c = a + b # 加 #

c = a - b # 减 #

c = a * b # 乘 #

c = a / b # 除 #

c = a % b # 取余 #

c = a ** b # 幂 #

c = a // b # 根 #

c = a %% b # 对数 #

d = false

d = a == b # 等于 #

d = a >< b # 不等于 #

d = a > b # 大于 #

d = a >= b # 大于等于 #

d = a < b # 小于 #

d = a <= b # 小于等于 #

d = true & false # 逻辑与 #

d = true | false # 逻辑或 #

d = ~true # 逻辑非 #

基本集合类型

数组类型表示为 []type ,用 []type{ value, value, value...} 包裹元素初始化。

a []int = []int{1,2,3,4,5}

一般情况下可以自动推导类型,使用 {value,value,value...} 直接初始化即可。

a = {1,2,3,4,5}

字典类型表示为 [type]type,用 [type]type{ [value]value, [value]value, [value]value...} 包裹元素初始化。

b [str]int = [str]int{ ["1"]1, ["2"]2, ["3"]3 }

一样可以使用自动推导类型。

b = { ["1"]1, ["2"]2, ["3"]3 }

使用索引语法 id[value] 即可取得某个索引对应元素的值。

v = a[0] # 数组索引从 0 开始 #

v = b["3"]

选择结构

Lite 的选择结构很简单,不需要使用 if,else,elif,switch,select,case,default,break这些关键字。

只需要用 ? 和指定的位置规则就可以进行多种操作。

纯分支结构用来对单纯的条件进行匹配,只会进入条件成立的分支 (if else)

a = 1

? a == 1 {

# 执行逻辑 #

} a == 2 {

# 执行逻辑 #

} _ {

# 当上面条件都不满足时执行逻辑 #

}

? true {

# 执行逻辑 #

}

值匹配结构用来对某个值进行多条件匹配,只会进入条件成立的分支 (switch)

a = 1

a ? 1 {

# 执行逻辑 #

} 2,3,4 {

# 合并多个条件执行逻辑 #

} _ {

# 当上面条件都不满足时执行逻辑 #

}

循环结构

Lite 的循环结构很简单,不需要使用 for,foreach,while,loop,in,of,range 这些关键字。

只需要用 @ 和指定的位置规则就可以进行多种操作。

集合循环用来对集合进行遍历 (foreach)

a = 0

arr = { 1,2,3,4,5 }

id @ arr { # 取出单个元素,定义为变量 id #

a += id

}

如果需要同时取出元素的索引和值,可以使用 [id]id 语法。

[index]value @ arr {

# 执行逻辑 #

}

计数循环用来对指定数字集合进行遍历,比如从0数到100(for)

计数需要引入特殊的范围表示语法 [start < end, step],step为步长,可以省略,默认为1。中间的操作符可以指定 >,>=,

a = 0

i @ [0 < 100] { # 0 到 99 #

a += i

}

i @ [0 <= 100] { # 0 到 100 #

a += i

}

i @ [100 > 0, 2] { # 100 到 1,步长为 2 #

a -= i

}

条件循环,满足条件时进行继续循环 (loop)

@ a > b {

# 执行逻辑 #

}

无限循环,很简单,只用 `@` 就可以了 (while)

@ {

# 执行逻辑 #

}

结尾

以上是 Lite 最基础的语法结构,对比起其它语言的语法是否更简洁呢?

下一次我们会来看看如何用简洁的语法表达函数和数据结构。

有疑问加站长微信联系(非本文作者)

php从入门到放弃表情,Lite语言——从入门到放弃(一)相关推荐

  1. c语言从入门到精通ppt,C语言从入门到精通第1章.ppt

    C语言从入门到精通第1章 1.2.2 认识Turbo C 2.0 1.2.2 认识Turbo C 2.0 ⑴ 菜单栏:包括[File](文件)菜单.[Edit](编辑)菜单.[Run](运行)菜单.[ ...

  2. C语言入门——《明解C语言》入门篇第四章练习

    新开C语言专栏整理一下学C的艰苦之路,先从看书+视频开始. 整理了<明解C语言>入门篇第四章练习的"参考答案",记录一下学习的过程.直接上代码. 练习4-1 int m ...

  3. python从入门到放弃表情图-Python 从入门到放弃(一)

    Python 从入门到放弃(一) 一个没有逻辑顺序的python笔记,包括日常使用python时的总结与阅读<Python基础教程>([挪] Magnus Lie Hetland 著) 的 ...

  4. 从入门到放弃表情包 python_Python从入门到放弃(1)

    送给装完Python还想玩一玩的小伙伴们. 读完准备部分,相信你一定能熟练掌握Python的运行和退出了,哇好棒~ 接下来讲讲Python里面的对象. 一切皆对象 Python是面向对象的程序语言,里 ...

  5. python从入门到放弃表情图-[python从入门到放弃]基于百度OCR的文字识别

    先申请百度OCR使用,百度OCR使用文档说明: https://cloud.baidu.com/doc/OCR/s/Rjwvxzm3n.按照文档安装百度aip库,命令行输入魔法如下:pip insta ...

  6. C语言入门I love China,C语言从入门到精通

    如何学习C语言 Ⅰ 第1篇 基础知识 开启C语言编程世界之门. 第1章 步入C的世界--Hello C 2 视频教学录像:1小时34分钟 你可能已经听说或知道一点C语言,也可能没有任何基础,没关系,本 ...

  7. c语言入门小程序素数,C语言编程入门经典18个小程序

    C语言是面向过程的,而C++是面向对象的 C跟C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考量的是怎样借助一个过程,对输入(或环境条件)进行运算处理得到输出(或推动 ...

  8. Swift教程Swift语言快速入门(内部资料)

    Swift语言快速入门(内部资料) 试读下载地址:http://pan.baidu.com/s/1eQCGRHw 前言Swift教程Swift语言快速入门(内部资料)Swift教程Swift语言快速入 ...

  9. 单片机c语言 〉〉,PìC单片机C语言编程入门(课件).doc

    PìC单片机C语言编程入门(课件) PICC入门笔记 PIC单片机C语言编程入门笔记 C语言基础复习--------没C语言基础看起来可能有点困难. C程序的语句 语句名称一般形式说明表达式语句表达式 ...

最新文章

  1. MAT之SA:利用SA算法解决TSP(数据是14个虚拟城市的横纵坐标)问题
  2. 【PAT乙级】 1018 锤子剪刀布 (20 分)
  3. 玩转MySQL之Linux下的简单操作(服务启动与关闭、启动与关闭、查看版本)
  4. 老spring3.2版本 redistemplate 报错_植物大战僵尸加强版本
  5. Redis源码分析(一)--Redis结构解析
  6. 简单的webservice发布和测试
  7. linux xp双系统引导修复工具,XP和ubuntu双系统下如何修复XP引导菜单
  8. MSRA-USTC 计算机科学领域前沿进展新年第一讲
  9. unity 插件 color picker htc手柄控制,扣动扳机生成三维点线
  10. VC编程助手_VC Assist(内附VC显示行号) VC插件
  11. 抛弃clover,爱上QTTabBar
  12. 怎么做手机App测试?app测试详细流程和方法介绍
  13. palantir_Palantir开源的两个库– Cinch和Sysmon
  14. html5 input valid,javascript – 如果inputElement.validity.valid == false,如何显示HTML5验证?...
  15. windows 7编辑启动菜单 bcdedit linux,WIN7系统BCDEDIT常用命令及使用实例
  16. Springboot WEBOJ项目—— Nginx部署
  17. 玩玩Simulink——直流电机仿真
  18. Sklearn-GBDT(GradientBoostingDecisonTree)梯度提升树
  19. python实现自动点击器_Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)...
  20. 我屮艸芔茻!!!什么情况,就刚才,百年之功废于一旦!!博客园,你TM想吃翔了吧!...

热门文章

  1. 开发和编程是一样的吗?区别有哪些?
  2. Python登录界面
  3. 拒绝职场危机,程序员最核心的竞争力是什么?
  4. python 2.7导入arcpy_[ArcPy Tips-2]给ArcPy换个家,用外部Python环境调用ArcPy
  5. 吃鱼可以不挑刺了?华中农业大学发现鳊鱼肌间刺表达基因,可培育“无刺鱼”...
  6. 实战+练习!用机器学习预测肺癌 | 明晚8点美国西奈山博后免费直播
  7. 如何在PD17虚拟机上安装CentOS Linux系统
  8. c盘的Oracle文件删不了吗,oracle卸载不干净怎么办
  9. nginx 多个root_nginx虚拟主机配置
  10. matlab repmat函数_Matlab向量化编程在二级劝退学科中的一个应用例子