用中文写代码,编译成原生 Windows 程序
Y++ 是一款面向中文用户的编程语言与集成开发环境。
全中文命令、可视化界面设计、拼音智能补全,让编程回归母语的直觉与流畅。
函数 主程序() {
文本 问候语 = "你好,世界!"
输出(问候语)
整数 计数 = 0
循环 (计数 < 5) {
输出("第 " + 到文本(计数 + 1) + " 次循环")
计数 = 计数 + 1
}
}
为中文用户精心打造的编程体验
命令、变量、函数名全部使用中文。告别英文语法障碍,用母语的思维方式编写程序,让逻辑表达更加自然流畅。
拖拽式界面设计,所见即所得。像搭积木一样组合窗口、按钮、列表、树形视图等 30+ 类控件,快速构建图形化应用程序。
输入拼音首字母即可快速补全中文命令。例如输入 "sc" 自动提示"输出",极大提升编码效率。
自带完整的编译环境,下载即可使用。无需安装 Visual Studio 或任何额外工具,真正的开箱即用。
内置 HTTP、JSON、多线程、数据库、文件操作、正则表达式、Windows API 等 17+ 个标准库,满足各种开发需求。
20 余种精心设计的渐变主题——深邃黑夜、海洋蓝、极光、赛博朋克……还支持自定义纯色、渐变与图片背景。
直观感受 Y++ 的中文编程风格
// ─── 数据类型 ───
整数 年龄 = 25
小数 分数 = 95.5
文本 姓名 = "张三"
逻辑 已通过 = 真
长整数 大数 = 9223372036854775807
输出(姓名 + " 今年 " + 到文本(年龄) + " 岁")
// ─── 条件判断 ───
如果 (分数 >= 90) {
输出("成绩优秀!")
} 否则如果 (分数 >= 60) {
输出("成绩合格")
} 否则 {
输出("需要努力")
}
// ─── 选择语句 ───
选择 (年龄) {
情况 18: 输出("刚刚成年")
情况 25: 输出("正值青春")
默认: 输出("其他年龄")
}
// ─── 循环 ───
循环 (整数 i = 0; i < 5; i++) {
如果 (i == 3) { 继续 }
输出("第 " + 到文本(i) + " 次")
}
// ─── 函数定义 ───
函数 计算面积(小数 宽, 小数 高) 小数 {
返回 宽 * 高
}
小数 面积 = 计算面积(10.5, 20.0)
输出("面积 = " + 到文本(面积))
如果 / 否则如果 / 否则选择 / 情况 / 默认跳出、继续// ─── 创建数组 ───
数组 水果[] = ["苹果", "香蕉", "橘子"]
数组 成绩[] = [92, 85, 78, 96, 88]
// ─── 增删改查 ───
数组添加(水果, "葡萄")
数组插入(水果, 1, "芒果")
数组删除(水果, 0)
数组设置(水果, 0, "西瓜")
整数 位置 = 数组查找(水果, "橘子")
逻辑 有香蕉 = 数组包含(水果, "香蕉")
// ─── 数学统计 ───
整数 总分 = 数组求和(成绩)
小数 平均分 = 数组平均(成绩)
整数 最高分 = 数组最大(成绩)
整数 最低分 = 数组最小(成绩)
输出("平均分: " + 到文本(平均分))
输出("最高分: " + 到文本(最高分))
// ─── 排序与变换 ───
数组排序(成绩)
数组反转(成绩)
数组去重(成绩)
数组打乱(成绩)
// ─── 遍历 ───
遍历 (水果, i, 项) {
输出("第 " + 到文本(i) + " 项: " + 项)
}
// ─── 二维数组 ───
二维数组 矩阵[][] = [[1, 2], [3, 4], [5, 6]]
文本 原文 = " Hello Y++ World "
// ─── 基本操作 ───
整数 长度 = 文本长度(原文)
文本 子串 = 截取文本(原文, 2, 5)
整数 位置 = 查找文本(原文, "Y++")
文本 替换 = 替换文本(原文, "World", "世界")
// ─── 大小写转换 ───
文本 大写 = 转大写(原文)
文本 小写 = 转小写(原文)
文本 首大写 = 首字母大写(原文)
// ─── 去空格与提取 ───
文本 干净 = 去空格(原文)
文本 左边 = 取左边(原文, 7)
文本 右边 = 取右边(原文, 7)
// ─── 判断 ───
逻辑 包含 = 文本包含(原文, "Y++")
逻辑 为空 = 文本空判断(原文)
逻辑 是数字 = 文本是否数字("12345")
// ─── 分割与合并 ───
数组 单词 = 文本分割("苹果,香蕉,橘子", ",")
文本 合并 = 数组合并(单词, " | ")
输出(合并) // 苹果 | 香蕉 | 橘子
// ─── 其他 ───
文本 重复 = 文本重复("嗨 ", 3)
文本 反转 = 文本反转("Hello")
整数 编码 = 编码字符("A") // 65
// ─── 文本文件读写 ───
写文件("日志.txt", "程序启动\n")
追加文本("日志.txt", "操作完成\n")
文本 内容 = 读文件("日志.txt")
输出(内容)
// ─── 字节集文件 ───
字节集 数据 = 读文件字节集("图片.png")
写文件字节集("备份.png", 数据)
// ─── 文件信息 ───
如果 (文件是否存在("config.ini")) {
整数 大小 = 取文件大小("config.ini")
文本 时间 = 取文件时间("config.ini")
输出("文件大小: " + 到文本(大小) + " 字节")
}
// ─── 目录操作 ───
创建目录("输出文件夹")
数组 文件列表 = 枚举文件("D:/项目")
数组 子目录 = 枚举目录("D:/项目")
遍历 (文件列表, i, 文件) {
输出(文件)
}
// ─── 路径操作 ───
文本 名称 = 取文件名("D:/项目/源码.yc")
文本 目录 = 取目录("D:/项目/源码.yc")
文本 扩展名 = 取扩展名("源码.yc")
文本 完整路径 = 合并路径("D:/项目", "源码.yc")
// ─── 简单 GET 请求 ───
文本 源码 = HTTP请求_文本("GET", "https://www.baidu.com")
输出(源码)
// ─── 带完整配置的 POST 请求 ───
HTTP请求配置类 配置
配置.设置协议头("Content-Type", "application/json")
配置.设置协议头("Authorization", "Bearer token123")
配置.设置超时(5000)
配置.设置代理("http://proxy:8080")
配置.设置Cookie("session", "abc123")
文本 数据 = "{\"name\":\"张三\",\"age\":25}"
文本 响应 = HTTP请求_文本("POST", "https://api.example.com/users", 数据, 配置)
如果 (配置.是否成功) {
输出("状态码: " + 到文本(配置.状态码))
输出("响应: " + 响应)
}
// ─── 下载文件 ───
字节集 文件数据 = HTTP请求_字节集("GET", "https://example.com/file.zip")
写出文件("下载的文件.zip", 文件数据)
// ─── 解析 JSON ───
文本 jsonStr = "{\"name\":\"张三\",\"age\":25,\"scores\":[90,85,92]}"
JSON类 json
json.解析(jsonStr)
// ─── 读取值 ───
文本 姓名 = json.取文本("name")
整数 年龄 = json.取整数("age")
整数 科目数 = json.数组长度("scores")
输出(姓名 + " 共有 " + 到文本(科目数) + " 门成绩")
// ─── 修改与写入 ───
json.置文本("name", "李四")
json.置整数("age", 30)
json.置逻辑("graduated", 真)
json.数组添加("scores", 88)
// 格式化输出
文本 结果 = json.格式化()
输出(结果)
// ─── 文件读写 ───
json.保存到文件("data.json")
JSON类 json2
json2.从文件加载("data.json")
// ─── 快捷操作 ───
文本 名字 = JSON取文本(jsonStr, "name")
文本 新json = JSON置文本(jsonStr, "name", "王五")
// ─── 连接数据库 ───
整数 连接 = 数据库连接_SQLite("学生管理.db")
// ─── 创建表 ───
数据库执行(连接, "CREATE TABLE IF NOT EXISTS 学生("
+ "学号 INTEGER PRIMARY KEY,"
+ "姓名 TEXT,"
+ "年龄 INTEGER,"
+ "成绩 REAL)")
// ─── 插入数据(使用事务提高性能)───
数据库开始事务(连接)
数据库执行(连接, "INSERT INTO 学生 VALUES(1, '张三', 20, 92.5)")
数据库执行(连接, "INSERT INTO 学生 VALUES(2, '李四', 21, 85.0)")
数据库执行(连接, "INSERT INTO 学生 VALUES(3, '王五', 19, 96.0)")
数据库提交事务(连接)
// ─── 查询数据 ───
整数 结果 = 数据库查询(连接, "SELECT * FROM 学生 WHERE 成绩 >= 90")
当 (数据库下一行(结果)) {
整数 学号 = 数据库读整数(结果, 0)
文本 姓名 = 数据库读文本(结果, 1)
小数 成绩 = 数据库读小数(结果, 3)
输出(姓名 + " 的成绩: " + 到文本(成绩))
}
数据库释放结果(结果)
数据库关闭(连接)
整数 完成数 = 0
整数 任务总数 = 20
// ─── 定义工作任务 ───
函数 执行任务(整数 编号) {
输出("任务 " + 到文本(编号) + " 开始执行")
延时(1000)
原子加(完成数, 1)
输出("任务 " + 到文本(编号) + " 已完成")
}
// ─── 定时刷新进度 ───
函数 刷新进度() {
整数 已完成 = 原子读(完成数)
输出("[进度] " + 到文本(已完成) + "/" + 到文本(任务总数))
}
// ─── 创建线程池 + 定时器 ───
整数 池句柄 = 创建线程池(取CPU核心数())
定时器类 计时器
计时器.启动(300, 刷新进度)
计次循环 (i, 1, 任务总数) {
线程池提交(池句柄, 执行任务, i)
}
等待线程池(池句柄)
计时器.停止()
输出("全部任务完成!")
// ─── 锁与信号量 ───
整数 锁 = 创建锁()
加锁(锁)
// ... 临界区操作 ...
解锁(锁)
// ─── 获取绘图场景 ───
整数 场景 = 绘图_取窗口场景(主窗口.句柄)
// ─── 定义颜色 ───
整数 红色 = 绘图_RGB(255, 0, 0)
整数 蓝色 = 绘图_RGB(0, 120, 215)
整数 绿色 = 绘图_RGB(0, 200, 80)
整数 白色 = 绘图_RGB(255, 255, 255)
// ─── 绘制图形 ───
绘图_填充矩形(场景, 0, 0, 800, 600, 白色)
绘图_画矩形Ex(场景, 50, 50, 200, 120, 蓝色, 绿色)
绘图_画椭圆Ex(场景, 300, 50, 200, 120, 红色, -1)
绘图_画线(场景, 50, 200, 500, 200)
// ─── 绘制文字 ───
绘图_设置文字颜色(场景, 蓝色)
绘图_画文字(场景, 50, 220, "Y++ 绘图示例")
// ─── 双缓冲(防闪烁)───
整数 内存场景 = 绘图_创建内存场景(主窗口.句柄, 800, 600)
绘图_填充矩形(内存场景, 0, 0, 800, 600, 白色)
// ... 在内存场景上绘制 ...
绘图_复制场景(场景, 0, 0, 内存场景, 0, 0, 800, 600)
绘图_释放内存场景(内存场景)
绘图_释放场景(主窗口.句柄, 场景)
// ─── 哈希算法 ───
文本 md5 = MD5文本("Hello Y++")
文本 sha256 = SHA256文本("Hello Y++")
整数 crc32 = CRC32文本("Hello Y++")
输出("MD5: " + md5)
输出("SHA256: " + sha256)
// ─── Base64 编码 ───
文本 编码 = Base64编码("Y++ Studio 你好")
文本 解码 = Base64解码(编码)
输出(编码) // WSsrIFN0dWRpbyDkvaDlpb0=
// ─── URL / HTML 编码 ───
文本 url编码 = URL编码("你好 世界")
文本 html编码 = HTML编码("<script>alert('XSS')</script>")
// ─── 加密 / 解密 ───
文本 密文 = RC4加密("机密数据", "我的密钥")
文本 明文 = RC4加密(密文, "我的密钥")
// ─── 进制转换 ───
文本 十六进制 = 十进制转十六进制(255) // "FF"
文本 二进制 = 十进制转二进制(255) // "11111111"
整数 十进制 = 十六进制转十进制("FF") // 255
// ─── 生成随机标识 ───
文本 密钥 = 生成随机密钥(32)
文本 uuid = 生成UUID()
// ─── TCP 客户端 ───
TCP类 tcp
tcp.连接("127.0.0.1", 8080)
tcp.发送("你好,服务器!")
文本 回复 = tcp.接收()
输出("服务器回复: " + 回复)
tcp.断开()
// ─── UDP 通信 ───
UDP类 udp
udp.发送("192.168.1.100", 9090, "广播消息")
文本 数据 = udp.接收()
// ─── WebSocket ───
WebSocket类 ws
ws.连接("ws://example.com/chat")
ws.发送("大家好!")
文本 消息 = ws.接收()
输出("收到消息: " + 消息)
ws.断开()
// ─── 全局热键 ───
函数 热键回调() {
输出("热键被按下!")
}
注册全局热键(#VK_F1, #MOD_ALT, "热键回调")
// ─── JS 引擎库:脚本与互调 ───
JS引擎类 js
js.初始化()
// 执行 JavaScript 代码
js.执行("var x = 10; var y = 20;")
js.执行("function add(a, b) { return a + b; }")
// Y++ 与 JS 双向传值
js.设置变量("name", "来自Y++的数据")
文本 值 = js.获取变量("name")
// 调用 JS 函数
文本 结果 = js.调用函数("add", [10, 20])
输出("计算结果: " + 结果)
js.清理()
// ─── COM 自动化(操作 Excel 等)───
对象类 excel
excel.创建("Excel.Application")
excel.调用("Visible", 真)
excel.调用("Workbooks.Add")
excel.调用("Cells", [1, 1], "Y++ 自动化")
excel.释放()
拖拽控件、设置属性,快速构建图形化应用
// ─── 窗口设置 ───
主窗口.标题 = "我的应用 v1.0"
主窗口.宽度 = 800
主窗口.高度 = 600
主窗口.居中()
// ─── 按钮 ───
按钮1.标题 = "提交"
按钮1.宽度 = 120
按钮1.背景色 = #蓝色
按钮1.文字颜色 = #白色
// ─── 标签(丰富样式)───
标签1.标题 = "欢迎使用"
标签1.字体名称 = "微软雅黑"
标签1.字体大小 = 24
标签1.粗体 = 真
标签1.对齐 = #居中
标签1.发光效果 = 真
// ─── 对话框 ───
信息框("操作成功!")
逻辑 确认 = 确认框("确定删除?")
文本 输入 = 输入框("请输入姓名:")
// ─── 文件选择对话框 ───
文本 文件 = 打开文件对话框(
"选择文件",
"Y++文件|*.yc|所有文件|*.*")
整数 颜色 = 选择颜色对话框()
200+ 内置命令覆盖开发中的方方面面
绝对值 四舍五入 取整 随机数 求余 最大值 最小值
取时间戳 取年份 取月份 格式化时间 计算时间间隔 是否闰年
文本到字节集 字节集到十六进制 取子字节集 合并字节集 字节集查找
取剪贴板文本 设置剪贴板图片 剪贴板文件列表 监听剪贴板
读注册表 写注册表 删注册表 注册表项存在
取CPU核心数 取进程ID 取鼠标坐标 取按键状态 取进程内存
播放声音 停止声音 蜂鸣(支持同步/异步播放)
日志_信息 断言_相等 性能计时 内存监控
内置多种开箱即用的功能模块
GET / POST 请求、Cookie、编码识别、代理、下载
SQLite 连接、增删改查、事务、结果集遍历
线程池、原子操作、锁、信号量、事件
读写、目录遍历、路径处理、属性查询
解析、生成、嵌套操作、文件读写
匹配、替换、提取、分组、分割
窗口操作、系统调用、原生 API 封装
轻量脚本引擎,Y++ 与 JavaScript 双向互调
UTF-8、GBK、GB2312、UTF-16 互转
TCP / UDP 客户端与服务器
日志、断言、性能计时、内存监控
全局/应用热键注册与监听
WebSocket、定时器、对象类、COM 自动化
创建菜单、子菜单、菜单项回调与绑定控件
锚点、停靠、自动布局与窗口尺寸自适应
ListView / TreeView / 进度条等控件的样式增强
* 以上为常用标准库展示,实际以 IDE 内命令库为准
不仅是语言,还包含完整开发工作流
多窗口项目 source/ui/resources 项目树 一键新建
拼音补全 参数提示 语法高亮 查找替换
拖拽控件 属性面板 事件绑定 撤销/重做
MSVC/MinGW 增量编译 缓存复用 详细构建输出
断点调试 变量查看 输出面板 快速重复运行
引擎路径 目标平台 静态/动态链接 主题与外观
从中文代码到可执行程序
使用全中文命令编写程序,可视化设计器拖拽搭建界面
内置编译器完成词法分析、语法解析与代码优化,支持增量编译
生成原生 Windows 可执行程序(.exe),无需运行时,直接双击运行
免费使用,开箱即用,无需安装额外依赖
* 当前仅提供 Windows 10 64 位 IDE;生成的程序可兼容 Windows 7 SP1 及以上系统
从入门到进阶,全面的学习资料