「Mac玩转仓颉内测版2」入门篇2 - 编写第一个Cangjie程序

本篇详细介绍在Mac系统上创建首个Cangjie项目并编写、运行第一个Cangjie程序的全过程。内容涵盖项目创建、代码编写、程序运行与调试,以及代码修改后的重新运行。通过本篇,掌握Cangjie项目的基本操作,进一步巩固开发环境的配置,迈出Cangjie编程的第一步。

关键词
  • Cangjie程序编写
  • 首个Cangjie项目创建
  • Cangjie代码调试
  • VSCode使用指南
  • Mac Cangjie开发
  • Cangjie项目运行

一、创建首个Cangjie项目
1.1 创建项目
  1. 打开 VSCode,使用快捷键 Shift + Command + P 打开命令面板。

  2. 输入 cangjie,选择 Create Cangjie Project 选项。

    image-20240927005056083.png

  3. 选择 Create CJNative Cangjie project 选项。

    image-20240927005234150.png

  4. 在弹出的菜单中,选择 Create Executable Output Cangjie project 选项。

    image-20240927005430551.png

  5. 选择项目路径,例如 /Users/用户名/Projects/CangjieProject,输入项目名称,然后按 Enter

    image-20240927005705622.png

  6. 确认创建后,自动生成 main.cj 文件。

1.2 打开项目
  1. 使用 VSCode 打开项目文件夹。

  2. Explorer 侧边栏中,导航至 src/main.cj 文件,查看默认代码:

    main(): Int64 {println("hello world")return 0
    }
    
1.3 运行项目
1.3.1 配置环境
  1. VSCode 中打开终端。

  2. 输入以下命令以配置环境:

    source /Users/用户名/cangjie/envsetup.sh
    

    注意:将 用户名 替换为Mac系统的实际用户名。

1.3.2 执行程序
  1. 在终端中输入以下命令运行项目:

    cjpm run
    
  2. 检查终端输出,确保显示:

    hello world
    
1.3.3 修改并重新运行程序
  1. 打开 src/main.cj 文件,修改 println 语句,例如:

    main(): Int64 {println("hello world")println("你好,仓颉")return 0
    }
    
  2. 保存文件后,返回终端,确保环境已配置(如未配置,可重新执行 source 命令)。

  3. 再次运行程序:

    cjpm run
    
  4. 检查终端输出,确保显示:

    hello world
    你好,仓颉
    

二、代码调试

调试是编程过程中不可或缺的一部分,通过调试可以有效地查找和修复代码中的错误。以下是在 VSCode 中进行Cangjie程序调试的步骤:

2.1 设置断点
  1. 打开 src/main.cj 文件。
  2. 在需要检查的代码行左侧单击,设置断点。例如,在 println(“hello world”) 行设置断点。
2.2 启动调试
  1. VSCode 中,点击左侧活动栏的 Run and Debug 图标,或使用快捷键 Control + Shift + D

  2. 点击 Start Debugging 按钮(绿色箭头),或按 F5

  3. 程序将运行并在断点处暂停,允许检查变量和程序状态。

2.3 检查变量和调用堆栈
  1. 当程序在断点处暂停时,查看 Variables 面板,检查变量的当前值。
  2. 使用 Call Stack 面板查看函数调用顺序。
  3. 可以逐步执行代码,使用 Step OverF10)、Step IntoF11)和 Step OutShift + F11)功能。
2.4 结束调试
  1. 调试完成后,点击 Stop 按钮或使用快捷键 Shift + F5 结束调试会话。

小结

本篇完成了创建首个Cangjie项目的全过程,验证了开发环境的正确配置,并成功编写、运行及修改了第一个Cangjie程序。通过这些步骤,奠定了Cangjie项目开发的坚实基础,并介绍了如何在 VSCode 中进行代码调试,提升了编程效率和代码质量。


下篇预告

下一篇将探讨Cangjie的基本语法与结构,深入了解语言特性,提升编程能力,敬请期待!


上一篇:「Mac玩转仓颉内测版1」入门篇1 - Cangjie环境的搭建
下一篇:「Mac玩转仓颉内测版3」入门篇3 - Cangjie的基本语法与结构

作者:SoraLuna
链接:https://www.nutpi.net/thread?topicId=74
來源:坚果派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/60575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

@ComponentScan 和 @SpringBootApplication 同时使用出现问题

1 同时使用ComponentScan和SpringBootApplication,会导致SpringBootApplication所带的注解失效,请注意这个问题。我在使用mybatis时出现了找不到bean的问题,使用了ComponentScan导致Controller没有扫描到。 2 在springboot下使用mybatis时&a…

接单渠道,程序员看这篇就够了。

接单、兼职,有团队没单子?僧多粥少,苦矣。 很多程序员,有时间、有技术,有steam(咳咳,不对,是team)。但是,可能还是挣不到什么钱,何也&#xff1f…

【深度学习】使用硬件加速模型训练速度

一、 单机器单GPU 特点 配置简单:无需多 GPU 或分布式环境的复杂配置,适合资源有限的场景。适合小规模模型:对于计算量不大的模型(如中小型 CNN、RNN),单 GPU 可以处理大多数常见任务。 优势 简单易用&…

CSS:导航栏三角箭头

用CSS实现导航流程图的样式。可根据自己的需求进行修改,代码精略的写了一下。 注:场景一和场景二在分辨率比较低的情况下会有一个1px的缝隙不太优雅,自行处理。有个方法是直接在每个外面包一个DIV,用动态样式设置底色。 场景一、…

Qt_day4_Qt_UI设计

目录 Qt_UI设计 1. Designer 设计师(掌握) 2. Layout 布局(重点) 2.1 基本使用 2.2 高级用法 2.3 代码布局(了解) 3. Designer与C的关系(熟悉) 4. 基本组件(掌握…

sql专题 之 count()区别

文章目录 count(1)count(*)count(列名)比较 count(1) count(1) 是对结果集中的每一行计数,不关注具体的列,只是计数行数。 每一行都计为常数1 等同于 count(*),性能上基本一致,但有时…

嵌入式课程day14-C语言指针进阶

目录 10.3指针进阶 10.3.1数组指针 10.3.2指针数组 10.3.3函数指针 10.3.4指针函数 10.3.5函数指针的实际应用案例qsort函数: 10.3指针进阶 10.3.1数组指针 是指针 --- 指向对象的类型是 数组 int [3] 数组指针一般用于指向二维数组里面的一行,…

蓝桥杯模拟

【问题描述】 如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。 请问 2024 有多少个质因数。 【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只…

Ruby编程语言全景解析:从基础到进阶

Ruby是一种动态的、面向对象的编程语言,以其优雅的语法和强大的功能而闻名于世。自从1995年由日本程序员松本行弘(Yukihiro Matsumoto)发布以来,Ruby便迅速成为了开发者中颇受欢迎的编程语言之一。无论是构建简单的脚本还是复杂的…

数据结构的时间复杂度和空间复杂度

目录 时间复杂度 空间复杂度 时间复杂度 基本操作的执行次数,为时间复杂度。 我们使用大O的渐进表示法来表示时间复杂度。 怎么使用? 先看例子: 在这个例子中, 基本操作为变量 count 的 加加 操作,并且,执行…

Ubuntu20.04 解决一段时间后键盘卡死 输入延迟很大的问题 ubuntu

Ubuntu20.04 解决一段时间后键盘卡死 输入延迟很大的问题 为了确保您能顺利通过双击快捷方式来重启 IBus,下面详细描述了从脚本创建到快捷方式设置的每一步,包括具体的命令行操作和必要的说明,以确保您能够按步骤成功执行。 步骤 1: 创建并…

解决Oracle DECODE函数字符串截断问题的深度剖析20241113

解决Oracle DECODE函数字符串截断问题的深度剖析 在使用Oracle数据库进行开发时,开发者可能会遇到一些令人困惑的问题。其中,在使用DECODE函数时,返回的字符串被截断就是一个典型的案例。本文将以学生管理系统为背景,深入探讨这个…

【Chapter 3】Machine Learning Classification Case_Prediction of diabetes-XGBoost

文章目录 1、XGBoost Algorithm2、Comparison of algorithm implementation between Python code and Sentosa_DSML community edition(1) Data reading and statistical analysis(2)Data preprocessing(3)Model Training and Evaluation(4)Model visualization 3、summarize 1…

Rust Struct 属性初始化

结构体是用户定义的数据类型,其中包含定义特定实例的字段。结构有助于实现更容易理解的抽象概念。本文介绍几种初始化结构体对象的方法,包括常规方法、Default特征、第三方包实现以及构建器模式。 Struct声明与初始化 struct Employee {id: i32,name: …

AI大模型微调:Qwen2大模型微调入门实战(完整代码)

简介: 该教程介绍了如何使用Qwen2,一个由阿里云通义实验室研发的开源大语言模型,进行指令微调以实现文本分类。微调是通过在(指令,输出)数据集上训练来改善LLMs理解人类指令的能力。教程中,使用…

树莓派(Raspberry Pi)Pico 2 C_C++开发环境配置(Docker+SDK)

树莓派(Raspberry Pi)Pico 2 C_C开发环境配置(DockerSDK) 开发环境容器系统环境配置配置 Raspberry Pi Pico 2 C/C 开发环境编译构建 Blink 示例程序下载 pico-sdk 和 pico-examples构建 Blink 链接 文章介绍了在容器中配置Raspbe…

剑指offer第二版(PDF+源码)

通过百度网盘分享的文件:剑指offer第二版(PDF源码).zip 链接:https://pan.baidu.com/s/11chsELiBIgjLR1mW7M8j1g?pwd1pq7 提取码:1pq7 《剑指Offer》第二版:开启求职编程之路的宝藏资源 在编程学习与求职准备的征程中&#xf…

Mac打开time machine(时间机器)备份特殊文件

Mac 打开time machine(时间机器)备份特殊文件 设置“时间机器”的作用具体操作办法 前言:今天在使用Nas同步文件时发现有部分重要文件没有同步,为了省事手动拖拽复制文件,导致其中一份非常重要的文件丢失,尝…

基于Python+Django+Vue3+MySQL实现的前后端分类的商场车辆管理系统

项目名称:基于PythonDjangoVue3MySQL实现的前后端分离商场车辆管理系统 技术栈 开发工具:PyCharm、Visual Studio Code (VSCode)运行环境:Python 3.10、MySQL 8.0、Node.js 18技术框架:Django 5、Vue 3.4、Ant-Design-Vue 4.12 …

vue2,vue3响应式的理解

vue2的话主要使用的是defineProperty对已有属性添加get,set,从而完成对数据的响应式控制,但每次需要for循环对属性进行遍历 function DefineReactive(target, key, value) {//存在多层嵌套的objectObserver(value);Object.defineReactive(target, key, {get() {retu…