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

「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/
來源:坚果派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


相关文章:

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

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

注册登录学生管理系统小项目

头文件 #ifndef _LOGINLINK_H_ #define _LOGINLINK_H_ #include<myhead.h> typedef struct {int id;char name[20];int age; }stu,*Pstu; typedef struct node {union{int len;stu data;};struct node *next; }node,*Pnode; int regist(); int login(); Pnode create()…...

qt QCompleter详解

1、概述 QCompleter是Qt框架中的一个类&#xff0c;用于为文本输入提供自动完成功能。它可以与Qt的输入控件&#xff08;如QLineEdit、QTextEdit等&#xff09;结合使用&#xff0c;根据用户的输入实时过滤数据源&#xff0c;并在输入控件下方或内部显示补全建议列表。用户可以…...

YOLOv11融合特征细化前馈网络 FRFN[CVPR2024]及相关改进思路

YOLOv11v10v8使用教程&#xff1a; YOLOv11入门到入土使用教程 一、 模块介绍 论文链接&#xff1a;Adapt or Rerish 代码链接&#xff1a;https://github.com/joshyZhou/AST 论文速览&#xff1a;基于 transformer 的方法在图像恢复任务中取得了有希望的性能&#xff0c;因为…...

【前端知识】JS模块规范

JS模块规范 概述CommonJS 规范 代码示例AMD 规范 代码示例ES6 Module 规范 代码示例IIFE 规范 代码示例全局变量 代码示例 CommonJS 模块和 ES6 模块有什么区别&#xff1f;1. 语法和声明方式2. 动态和静态导入3. 循环依赖4. 默认导出和命名导出5. 文件扩展名6. 环境和应用7. 工…...

vue3展示pag格式动态图

提示&#xff1a;如果是webpack环境的&#xff0c;参考&#xff1a;Pag格式在vue3中的简单使用方法_pag文件-CSDN博客 下面展示的是在vite环境下配置pag 1、安装libpag npm i libpag --save 2、安装rollup-plugin-copy npm i rollup-plugin-copy --save 3、封装pag组件 下…...

代码随想录算法训练营第三十九天|Day39 动态规划

198.打家劫舍 视频讲解&#xff1a;https://www.bilibili.com/video/BV1Te411N7SX https://programmercarl.com/0198.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8D.html 思路 #define max(a, b) ((a) > (b) ? (a) : (b)) int rob(int* nums, int numsSize) {if(numsSize 0){ret…...

qt QMovie详解

1、概述 QMovie 是 Qt 框架中用于处理动画文件的类。它支持多种动画格式&#xff0c;包括 GIF 和一些常见的视频格式&#xff08;尽管对视频格式的支持依赖于底层平台&#xff09;。QMovie 类主要用于在 QLabel 或 QGraphicsView 等控件中显示动画。通过加载动画文件&#xff…...

数据集整理

系列博客目录 文章目录 系列博客目录1.Visual Genome数据集2.COCO数据集3.Flickr30k数据集10.集合多个数据集的网站 1.Visual Genome数据集 官网链接&#xff1a;https://homes.cs.washington.edu/~ranjay/visualgenome/index.html Visual Genome数据集梳理 Visual Genome数据…...

认证授权基础概念详解

目录 认证 (Authentication) 和授权 (Authorization)的区别是什么&#xff1f; RBAC 模型了解吗&#xff1f; 什么是 Cookie ? Cookie 的作用是什么? 如何在项目中使用 Cookie 呢&#xff1f; 如何在 Spring Boot 中创建和读取 Cookie 创建 Cookie Cookie 到期日期 安全…...

美国地址生成器站点

推荐一&#xff1a;fakexy 官网地址&#xff1a;https://www.fakexy.com 推荐二&#xff1a;好维持官网地址&#xff1a; https://www.dizhishengcheng.com 官网除了支持生成美国地址信息外&#xff0c;还支持生成英国、加拿大、日朩、澳大利亚、德国、法国、意大利、西班牙、巴…...

微信4.0大版本升级跨平台支持界面全面改版

微信4.0公测版现已正式发布&#xff0c;作为微信的大版本升级&#xff0c;新版微信基于全新架构开发&#xff0c;跨平台支持Windows和MAC系统&#xff0c;界面也全面改版&#xff0c;聊天宝也第一时间适配微信4.0&#xff0c;为广大客户提供快捷回复支持 前言 微信4.0公测版现…...

不想贴秋膘?正确打开秋冬运动姿势

这个秋天想要轻装上阵&#xff0c;想健康入秋更要美美入冬怎么破&#xff1f;这期把正确打开秋冬姿势一次性告诉你哦~ 天气变凉&#xff0c;脂肪可要燃起来~想要无痛入秋&#xff0c;最重要的动起来&#xff01;每天都抽出一点时间去运动一下&#xff0c;不光让身体燃起来&…...

【AIGC半月报】AIGC大模型启元:2024.11(上)

【AIGC半月报】AIGC大模型启元&#xff1a;2024.11&#xff08;上&#xff09; (1) Hunyuan-Large&#xff08;腾讯开源大模型&#xff09;(2) FLUX1.1 pro&#xff08;文生图&#xff09;(3) CogVideoX v1.5&#xff08;智谱AI升级文生视频大模型&#xff09; (1) Hunyuan-Lar…...

纯前端生成PDF(jsPDF)并下载保存或上传到OSS

前言 在工作中遇到了一个需求&#xff0c;就是把前端页面生成PDF并保存在本地&#xff0c;因为前端网站可能会展示各种表格&#xff0c;图表信息内容并带有比较鲜艳的色彩样式&#xff0c;如果让后端生产的PDF的话样式可能和前端页面展示的有所差异&#xff0c;所以这个任务就落…...

海外媒体发稿:旅游业媒体推广12个方面的注意事项-华媒舍

1.社交媒体推广过多 社交媒体是旅游业媒体推广的重要途径之一&#xff0c;过分依赖社交媒体将会成为一个常见误区。尽管社交媒体能够帮助旅行目的地提升知名度和曝光度&#xff0c;但如果过度投入精力与资源&#xff0c;可能忽视别的合理推广方式。 2.忽略SEO优化 搜索引擎提…...

分割回文串(DFS)

给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串。返回 s 所有可能的分割方案。 示例 1&#xff1a; 输入&#xff1a;s "aab" 输出&#xff1a;[["a","a","b"],["aa","b&qu…...

Qt第三课 ----------容器类控件

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…...

打印菱形(C语言)

程序&#xff1a; #include <stdio.h> int main() { int i,j; for(i1;i<5;i){ for(j0;j<6-i;j){ printf(" ");} for(j0;j<i*2-1;j){ printf("*");} printf("\n");} …...

Oracle 19c 中启用 scott 用户

Oracle 19c 中启用 scott 用户 文章目录 Oracle 19c 中启用 scott 用户正常操作如果ORA-01918: 用户 SCOTT 不存在?/sqlplus/admin/scott.sql 没有 scott.sql 怎么处理 正常操作 连接到 Oracle 数据库&#xff1a; 使用 sqlplus 工具或者其他 SQL 客户端工具&#xff08;如 S…...

git commit 校验

commitlint官方链接 1. npm install --save-dev commitlint/config-conventional commitlint/cli 2. 配置commitlint.config.cjs(项目根目录中&#xff09; module.exports {extends: [commitlint/config-conventional],rules: {type-enum: [2,always,[Feat, Fix, Doc, Style,…...

【AtCoder】Beginner Contest 377-B.Avoid Rook Attack

Problem Statement 题目链接 There is a grid of 64 64 64 squares with 8 8 8 rows and 8 8 8 columns. Let ( i , j ) (i,j) (i,j) denote the square at the i i i-th row from the top ( 1 ≤ i ≤ 8 ) (1\leq i\leq8) (1≤i≤8) and j j j-th column from the lef…...

江协科技STM32学习- P38 软件SPI读写W25Q64

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…...

【Triton 教程】低内存 Dropout

Triton 是一种用于并行编程的语言和编译器。它旨在提供一个基于 Python 的编程环境&#xff0c;以高效编写自定义 DNN 计算内核&#xff0c;并能够在现代 GPU 硬件上以最大吞吐量运行。 更多 Triton 中文文档可访问 →https://triton.hyper.ai/ 在本教程中&#xff0c;您将编…...

npx创建项目时,error fetch failed.TypeError: fetch failed

npx创建项目时&#xff0c;报以下错误&#xff1a; error fetch failed. TypeError: fetch failedat node:internal/deps/undici/undici:12345:11at process.processTicksAndRejections (node:internal/process/task_queues:95:5)at async getTemplateVersion (C:\Users\ymt30…...

《Kotlin实战》-附录

附录 本部分内容只是简单列举下Kotlin应用以便指引进一步深入学习Kotlin。 附录A&#xff1a;构建Kotlin项目 本节只会记录下gradle的应用&#xff0c;其他需要时请自行搜索查看。 A.1 用Gradle构建Kotlin代码的项目 构建Kotlin项目的标准Gradle脚本如下&#xff1a; bui…...

yelp数据集上识别潜在的热门商家

yelp数据集是研究B2C业态的一个很好的数据集&#xff0c;要识别潜在的热门商家是一个多维度的分析过程&#xff0c;涉及用户行为、商家特征和社区结构等多个因素。从yelp数据集里我们可以挖掘到下面信息有助于识别热门商家 用户评分和评论分析 评分均值: 商家的平均评分是反映其…...

【Linux】进程信号全攻略(一)

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; 信号的概念 二&#xff1a;&#x1f525; 信号产生的方式 &#x1f98b; 使用键盘&#x1f98b; 系统调用函数&#x1f98b; 软件条件&#x1f98b; 进程异…...

linux文件重命名

Linux文件重命名 文件名显示异常问题出在哪里批量改名扩展 文件名显示异常 跑测CTS&#xff0c;linux环境看跑测结果log file显示没问题&#xff0c;倘若windows下看log file名却显示异常&#xff0c;不太方便操作。 问题出在哪里 linux环境下文件名可以显示正常&#xff0…...

如何选择适合的AWS EC2实例类型

在云计算的世界中&#xff0c;Amazon Web Services&#xff08;AWS&#xff09;提供了丰富的服务&#xff0c;其中Elastic Compute Cloud&#xff08;EC2&#xff09;是最受欢迎的服务之一。选择合适的EC2实例类型对于确保应用程序的性能和成本效益至关重要。我们九河云通过本文…...