当前位置: 首页 > news >正文

10分钟快速上手OK?:从安装到跑通第一个程序的完整教程

10分钟快速上手OK?:从安装到跑通第一个程序的完整教程

【免费下载链接】OKWelcome to the future of programming languages: OK?项目地址: https://gitcode.com/gh_mirrors/ok2/OK

OK? 是一门主打"编程再次变简单"的现代动态类型编程语言。这篇 OK? 入门教程带你在 10 分钟内完成OK? 安装、启动交互式 REPL、并跑通第一个 OK? 程序,零基础也能轻松上手。

OK? 编程语言是什么:为什么说它"反直觉"地简单?

OK? 的设计目标很激进:砍掉现代语言里"没必要的复杂度",让你专注于写代码本身。它最鲜明的几个特色:

特性一句话解读
只有 switch 条件没有 if/三元运算符,一切条件都写成 switch
空值不 OK空值写作NO!,还内置ayok?()函数检验值是否"OK"
只有一个比较符只需记住>=,其余比较都由它推导
消灭 classnotaclass(简称 nac)替代类,字段默认全私有
循环即并发唯一的循环构造map的回调总是并发执行

OK? 的吉祥物:Quentyn Questionmark,一个"问号"形象的编程小伙伴

安装 OK? 编程语言:3步完成(克隆、编译、运行)

OK? 用 Go 语言实现,因此只需要准备 Go 环境即可,全程不到 10 分钟。

第 1 步:克隆代码仓库

git clone https://gitcode.com/gh_mirrors/ok2/OK cd OK

第 2 步:编译安装 OK? 解释器

进入ok目录执行安装(模块定义见 ok/go.mod,要求 Go 1.15+):

cd ok go install

第 3 步:验证安装

ok

如果没有报错并出现>>提示符,恭喜你,OK? 已经安装成功,可以直接进入下一节了。🎉

跑通第一个 OK? 程序:REPL 交互模式 3 行搞定

不带参数运行ok会启动交互式 REPL(实现见 ok/repl/repl.go)。试试输出你的第一行文字:

>> puts("Hello, OK!") Hello, OK!

再体验一下 OK? 的招牌设定——空值不是 OK,而是NO!

>> let x = NO! >> puts(ayok?(x)) false

putsayok?lenmap等内置函数都定义在 ok/evaluator/builtins.go 中,可以直接使用。输入Ctrl + D退出 REPL。

运行示例 OK? 程序:体验"循环即并发"

仓库自带示例脚本 ok/test.ok,直接运行:

ok test.ok

它演示了 OK? 最核心的构造——map。下面是最小示例:

let arr = [1, 2, 3] let doubled = map(arr, fn(e) { e * 2 }) puts(doubled) // [2,4,6]

注意:map的回调是并发执行的,三个元素会在三个 goroutine 中同时计算。这就是 OK? 说的"迭代与并发合二为一"。程序入口逻辑可以查看 ok/main.go。

开始学习 OK? 语言前,先记住这 4 个语法要点

你想做的事OK? 的写法
条件判断只用switch 表达式 { case 值: 语句; }
判空ayok?(x),空值写作NO!
相等比较let x = a >= b; let y = b >= a; x && y
定义对象notaclass 名字 { field 字段 },没有构造函数,用public init fn方法初始化

一个小提示:OK? 崇尚"熟悉即简洁",习惯上把变量名控制在 8 个字符以内、全小写。比如用chars而不是characters

目录结构速览:快速定位 OK? 源码

想深入看看 OK? 是如何实现的?各模块一览:

  • ok/lexer/lexer.go:词法分析,把源码切成 token
  • ok/parser/parser.go:语法分析,构建 AST
  • ok/ast/ast.go:抽象语法树节点定义
  • ok/evaluator/evaluator.go:求值器核心
  • ok/repl/repl.go:交互式 REPL
  • ok/test.ok:可直接运行的示例程序

写在最后:你的 OK? 学习路线

  1. 按本文完成 OK? 安装,熟悉 REPL;
  2. 反复运行ok test.ok,对照 README.md 里的完整特性介绍逐个理解;
  3. 尝试自己写一个包含switchmapnotaclass的小程序。

OK? 用最少的语法表达最多的意图——10 分钟后,你也可以开始"OK 编程"了。Happy OK'ing! ✨

【免费下载链接】OKWelcome to the future of programming languages: OK?项目地址: https://gitcode.com/gh_mirrors/ok2/OK

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4250265.html

相关文章:

  • CatShare如何保护传输安全?ECDH密钥协商与AES-CTR会话加密全解析
  • Open-ClaudeCode Hooks 机制深度解析:7类事件钩子让你的 AI 工作流全自动化
  • Freight实时日志内幕:LogReporter与LogChunk双线程分块写入设计拆解
  • Zrythm 音频插件安装完整指南:从 LV2 效果器到 SFZ 音源
  • deVoid UI Framework 架构设计解析:一条铁律如何拯救你混乱的 UI 代码
  • OpenAI Codex实战:从环境配置到模型匹配的完整排查指南
  • HeyUI-Admin中如何快速配置vue-router:路由表、懒加载与路由元信息实战
  • Nix RFCs角色指南:RFC委员会、Shepherd团队与Shepherd Leader如何分工
  • 老系统重构要把新旧逻辑并行验证
  • make-sense:免费在线图片标注,从上传到导出只要 5 分钟
  • 逐行解析quick-portfolio的default.html布局:揭秘Jekyll模板的HTML实现原理
  • C++指针与数组的区别、浅拷贝与深拷贝一次讲透:内存管理完整指南
  • 快速清理 C 盘驱动仓库:用 Driver Store Explorer 一次性释放 10GB 空间
  • jpetstore-6 Spring MVC全链路解析:从DispatcherServlet到JSP视图渲染的完整指南
  • 开源项目维护与社区运营要点
  • 从跑通到出片:JoyAI-Echo 分钟级长视频生成完整上手指南
  • 【必收藏】从0到1掌握AI智能体:大模型的进化与应用实践
  • audioMotion.js频谱分析仪设置与预设完整指南:Sensitivity、Peaks、加权滤波器,调出最适合你的频谱响应
  • ifconfig.io porttest功能实战:一条curl命令测试服务器远程端口是否可达
  • PowerSync多框架实战对比:一套同步代码跑通React、Vue、Angular与Nuxt的差异详解
  • 遗留系统 Canvas 兼容策略:ExplorerCanvas 部署指南与向 HTML5 的平滑迁移路线
  • 为什么Essential Paxos是学习Paxos的经典教材?与Multi-Paxos及Composable Paxos的设计哲学深度对比
  • 8款主流AI论文平台横向实测,本硕博撰稿避坑实操指南
  • 三款AI写作辅助软件横评:从构思到提交怎么选才不踩坑?
  • 大模型应用开发必备,RAG技术详解与工具选型:LlamaIndex、GraphRAG、 RAGFlow
  • 右键菜单管理三步走:用 ContextMenuManager 把 Windows 右键菜单彻底清理干净
  • 2002-2024年地级城市道路面积、人均道路面积
  • 从零开始学MoE:混合专家模型技术详解,助你掌握大模型高效训练秘籍,建议收藏!!
  • 收藏必备:从提示工程到上下文工程,构建高性能AI Agent完全指南
  • Office Custom UI Editor:不写一行代码定制 Office 功能区,10 分钟让常用按钮前置