Ring/教程/功能
外观
< Ring
Ring 语言具有以下功能
.. tip:: 首个版本的其中一个主要目标是创建一个可用于生产的实用语言!
- 免费开源(MIT 许可证)
- 解释器 - 混合实现(编译器 + 虚拟机)
- 面向对象编程之上的声明式编程
- 语句没有显式结束(不需要 ; 或 ENTER)
- 一种小语言(大约 100,000 行代码)
* 编译器 + 虚拟机是 15,000 行 C 代码 * 其他 85,000 行代码与库相关! * 10,000 行 C 代码 * 50,000 行 C++ 代码 * 25,000 行 Ring 代码
- 用 ANSI C 编写(代码是生成的)
- 使用可视化编程(PWCT)开发
- 可选的打印令牌/语法/字节码以供执行期间使用
- 可移植(Windows、Linux 和 Mac OS X)
- 注释(单行和多行)
- 不区分大小写
- 动态类型
- 弱类型
- 词法作用域(全局、局部和对象状态)
- 函数内部变量的默认作用域(局部)
- 函数外部变量的默认作用域(全局)
- 垃圾收集器 - 自动内存管理(逃逸分析和引用计数)
- 结构化编程
- 丰富的控制结构和运算符
- For in 按引用获取项目而不是值,您可以读取/编辑项目
- 使用 exit 从多个循环中退出
- 过程/函数
- 主函数(可选)
- 在定义之前调用函数
- 递归
- 多行文本
- 按索引访问(读/写)字符串字母
- 列表索引从 1 开始
- 没有关键字来结束函数/类/包
- 范围运算符,例如:1:10 和 "a":"z"
- 一等公民变量、列表、对象和函数
- 按值存储/复制列表/对象(深拷贝)
- 按引用传递列表/对象
- 原生面向对象支持
* 封装 * 设置器/获取器(可选) * 私有状态(可选) * 实例化 * 多态性 * 组合 * 继承(单继承) * 运算符重载 * 包
- 使用 { } 访问对象并使用属性/方法作为变量/函数
- 反射和元编程
- 清晰的程序结构(语句、然后是函数、然后是包和类)
- 异常处理
- Eval() 用于在运行时执行代码
- 8 位干净,直接在二进制数据上工作
- I/O 命令
- 数学函数
- 字符串函数
- 列表函数
- 文件处理函数
- 数据库支持(ODBC 和 MySQL)
- 安全函数(OpenSSL)
- 互联网函数(LibCurl)
- CGI 库(用 Ring 编写)
* HTTP Get * HTTP Post * 文件上传 * Cookie * URL 编码 * HTML 模板 * HTML 特殊字符 * 使用函数生成 HTML * 使用类生成 HTML * CRUD 示例(使用 MVC) * 用户示例(注册、登录和检查)
- 使用 C/C++ 扩展(简单 API)
- 在 C/C++ 程序中嵌入语言
- 附带代码生成器(用 Ring 编写),用于快速包装 C/C++ 库
* 用于通过创建 RingAllegro 来支持 Allegro * 用于通过创建 RingQt 来支持 Qt
- 创建 2D 游戏(使用 Allegro 库)
- 为桌面和移动设备创建 GUI 应用程序(使用 Qt 框架)