零基础掌握粤语编程语言:从入门到实战全指南
引言
还在为编程语言中的英文关键字感到困惑吗?粤语编程语言(The Cantonese programming language)为你提供全新的编程体验!作为一门用粤语与计算机沟通的编程语言,它让粤语母语者能够用最熟悉的语言编写代码,消除语言障碍,提升编程效率。本文将带你从零开始,全面掌握粤语编程语言的安装、基础语法、高级特性及实战应用,让你轻松迈入粤语编程的世界。
安装指南
粤语编程语言可以通过Python包管理工具pip快速安装,支持Windows、macOS和Linux系统。
| 操作系统 | 安装命令 | 备注 |
|---|---|---|
| Windows | pip install Cantonese | 需先安装Python3 |
| macOS | pip3 install Cantonese | 建议使用虚拟环境 |
| Linux | sudo pip3 install Cantonese | 可能需要管理员权限 |
安装完成后,可通过以下命令验证版本:
cantonese -v
第一个程序:Hello World
让我们从经典的"Hello World"程序开始,体验粤语编程的魅力。创建一个名为HelloWorld.cantonese的文件,输入以下代码:
畀我睇下「"Hello World!"」點樣先?
收工
通过以下命令运行程序:
cantonese HelloWorld.cantonese
运行结果将在终端输出"Hello World!"。这个简单的程序使用了粤语编程语言的核心输出语句畀我睇下(让我看看),用于在控制台打印内容。
基础语法
变量定义与赋值
粤语编程语言使用介紹返(介绍)关键字定义变量,用係(是)进行赋值:
介紹返「A」係 1
介紹返「B」係 2
也可以使用批量赋值的方式:
介紹返 =>
「A」係 1
「B」係 2
先啦
要删除变量,可以使用冇鳩用或冇撚用(没用)关键字:
冇鳩用 A,B
数据类型与操作
粤语编程语言支持常见的数据类型,包括整数、浮点数、字符串、列表等。使用起底(起底)关键字可以查看变量类型:
介紹返「A」係 1
起底「A」 // 输出 <class 'int'>
列表(数组)的定义和使用:
|[1, 2, 3, 4]| 拍住上 => |數組|
畀我睇下 |數組[0]| 點樣先?? // 输出 1
控制流语句
条件语句
使用如果(如果)和唔係(否则)关键字实现条件判断:
介紹返「A」係 2
如果 |A 係 2| 嘅话 => {
畀我睇下「"A 係 2"」點樣先??
}
唔係 嘅话 => {
畀我睇下「"A 唔係 2"」點樣先??
}
也可以使用睇撚住(match)实现多条件判断:
介紹返 状态 係 404
睇撚住 状态 =>
| 撞见 400 => { 畀我睇下 "Bad request" 點樣先?? }
| 撞见 401 => { 畀我睇下 "Unauthorized" 點樣先?? }
| 撞见 403 => { 畀我睇下 "Forbidden" 點樣先?? }
| 撞见 404 => { 畀我睇下 "Not found" 點樣先?? }
| _ => { 畀我睇下 "乜都唔係" 點樣先?? }
搞掂
循环语句
使用落操场玩跑步(循环)实现循环操作:
介紹返 =>
「start」係 0
「结束」係 唔啱
先啦
落操场玩跑步
介紹返「start」係「start + 1」
畀我睇下「start」 點樣先??
如果 |start >= 10| 嘅话 => {
飲茶先啦 // 相当于 break
}
玩到「结束」为止
也可以使用更简洁的从...行到...(for)循环:
「A」从 1 行到 10
畀我睇下「A」點樣先??
到步
函数定义与调用
使用點部署(怎么部署)和搞掂(搞定)关键字定义函数:
介紹返 $get_max
|数字1, 数字2| 點部署
如果 |数字1 比唔上 数字2| 嘅话 => {
还数「数字2」
}
唔係 嘅话 => {
还数「数字1」
}
搞掂
调用函数时使用下 ->(下)关键字:
介紹返 結果 係
get_max 下 -> 23, 17
畀我睇下 結果 點樣先?? // 输出 23
高级特性:宏定义
粤语编程语言引入了类似Rust的宏定义功能,允许用户扩展语言语法。使用袋仔的法寶(袋仔的法宝)关键字定义宏:
介紹返 sayhello 係 袋仔的法寶 =>
| (Hello @s: str) => { 畀我睇下 "Hello " + @s 點樣先?? }
| () => { 畀我睇下 "Hello" 點樣先?? }
搞掂
sayhello!(Hello "世界") // 输出 "Hello 世界"
sayhello!() // 输出 "Hello"
宏可以匹配不同的模式并生成相应的代码,极大地增强了语言的灵活性。例如,我们可以定义一个计算宏:
介紹返 計算 係 袋仔的法寶 =>
| (同我計 @左: lit 加 @右: lit 好唔好) => { @左 + @右 }
| (同我計 @左: lit 减 @右: lit 好唔好) => { @左 - @右 }
搞掂
畀我睇下 計算!(同我計 1 加 2 好唔好) 點樣先?? // 输出 3
面向对象编程
粤语编程语言支持面向对象编程,使用係 乜X(是什么)定义类,佢個老豆叫(他的爸爸叫)指定父类,佢識得(他会)定义方法:
介紹返 duck 係 乜X {
佢個老豆叫 object
佢嘅 |性别| 係 "公"
佢識得 |游下水| => {
畀我睇下 "Duck is swimming" 點樣先??
}
佢識得 |睡下觉| => {
畀我睇下 "Duck is sleeping" 點樣先??
}
}
创建对象并调用方法:
介紹返 myduck 係 阿->duck(性别="公")
myduck -> 游下水() 啦! // 输出 "Duck is swimming"
好心 |myduck -> 睡下觉| 啦! // 输出 "Duck is sleeping"
实战应用
算法实现:冒泡排序
以下是使用粤语编程语言实现的冒泡排序算法:
介紹返 $bubble_sort
|数组| 點部署
介紹返 |长度| 係 |数组 嘅 长度|
|i| 从 1 行到 |长度|
|索引| 从 0 行到 |长度 减 i|
如果 |数组[索引 加 1] 比唔上 数组[索引]| 嘅话 => {
介紹返 |交换| 係 |数组[索引]|
介紹返 |数组[索引]| 係 |数组[索引 加 1]|
介紹返 |数组[索引 加 1]| 係 |交换|
}
到步
到步
畀我睇下 |数组| 點樣先??
搞掂
bubble_sort 下 -> |[64, 34, 25, 12, 22, 11, 90]| 啦 // 输出排序后的数组
Web开发
粤语编程语言可以快速开发简单的网页应用。以下代码创建一个基本的Web页面:
{% std::macros::net %}
使下 std::net::监视;
介紹返 html 係 HTML老作一下! (
打标题 => [ "我嘅第一个网页" ]
拎笔 => [ "Hello World" ]
)
监视 下 -> |html, "127.0.0.1", 80| 啦
运行程序后,访问127.0.0.1:80即可看到网页效果:
游戏开发
粤语编程语言支持使用Kivy框架开发GUI应用和简单游戏。以下是一个简单的Hello World应用:
使下 py::kivy
介紹返 HelloApp 係 乜X {
佢個老豆叫 App
佢識得 HelloWorld |自己| => {
|同我show| 下 -> "Hello World" 就係 |做嘢|
还数 |做嘢|
}
}
App运行 下 -> |HelloApp, HelloApp()->HelloWorld| 啦
运行结果:
更复杂的游戏示例可以参考迷宫游戏:
海龟绘图
使用粤语编程语言的海龟绘图库,可以轻松创建图形:
{% std::macros::ui %}
使下 py::turtle
老作一下!(
首先 |画个圈(100)|,
跟住 |写隻字("Made By Cantonese\n", False,'center')|,
最尾 |听我支笛()|,
)
运行结果:
运行方式
粤语编程语言支持多种运行方式,满足不同场景需求:
- Python虚拟机运行(默认方式):
cantonese [文件名]
- 转换为Python代码:
cantonese [文件名] -to_py
- 使用LLVM执行(需安装llvmlite和clang):
cantonese [文件名] -llvm
- 转换为HTML:
cantonese [文件名] -to_web
常见问题解答
Q: 运行程序时出现中文乱码怎么办?
A: 确保源代码文件使用UTF-8编码保存,Windows系统可能需要额外配置以支持ANSI颜色显示:
reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1
Q: 如何调用Python库?
A: 使用使下(使用)关键字导入Python库:
使下 py::os::*
使下 py::math::*
Q: 宏定义时出现匹配错误怎么办?
A: 检查宏模式定义是否正确,确保元变量类型与使用场景匹配。可以使用-z参数查看详细错误信息。
总结与展望
粤语编程语言为粤语母语者提供了一种全新的编程方式,通过自然的粤语语法降低编程入门门槛。本文介绍了从安装到高级应用的全方位知识,包括基础语法、函数、面向对象、宏定义等核心特性,以及Web开发、游戏开发、算法实现等实战案例。
项目仍在持续发展中,未来计划支持更多语言特性和库,完善LLVM执行引擎,提升性能和兼容性。欢迎访问项目仓库获取更多示例和最新更新,加入粤语编程社区,一起推动粤语编程语言的发展。
通过粤语编程语言,我们不仅能更自然地与计算机沟通,还能为粤语文化在科技领域的传承和创新贡献力量。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考








