03。仓颉程序结构

news2024/9/22 19:34:34

1,什么是 仓颉的“源代码”、“源文件”?

        ~通常以 “ .cj ” 为后缀的文本文件里面包含的仓颉代码,我们称为仓颉源代码源文件

                / /  test.txt     ---------------     test.cj    

2,什么是 “ 作用域” ?“嵌套作用域 ” ? “顶层作用域” ?

        ~在仓颉源代码中,用一对大括号 “ {  } ” 包含的仓颉代码,就是一个 作用域

        ~在一个作用域中再用一对大括号“{  }”包含一段仓颉代码就叫做 嵌套作用域

        ~没有被大括号 "{  }" 包含的仓颉代码就是 顶层作用域

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

作用域的有效范围,顶层作用域 到 最内层作用域   “依 次 递 减”。

作用域的 “权利” 大小,顶层作用域 到 最内层作用域   “依 次 递 增”。

作用域定义命名的元素,只能在当前作用域和其内部作用域被识别;

内层作用域 可以更改外层定义命名的元素,但一样只能在当前作用域和其内部作用域有效。

/ /  元素可以是变量、函数、自定义类型等

总结:仓颉嵌套作用域中,顶层作用域有效范围最大,”权利“最小;最内层作用域有效范围最小,”权利“最大。

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

3,在 ”顶层作用域“ 中可以定义什么?

        ~可以定义 ”变量“、”函数“、”main函数“、”自定义类型“(class , struct , interface , enum 等)。

        ~顶层作用域中的  函数  和  变量  叫做 全局变量、全局函数。

        ~其他作用域中的 函数 和 变量 叫做 局部变量、局部函数。

        ~自定义类型中的 函数 和 变量 叫做 成员变量、成员函数。

        ~自定义类型只能在顶层作用域中定义


        // enum  和   interface 中 , 只能定义 成员函数,不能定义成员变量


4,在仓颉中,变量  ?

        ~1,变量是由    修饰符、 变量名、 数据类型、 值,  四种属性构成。
        ~2,基本样式:

                        修饰符  变量名 :变量类型  =  值 


        // 开发者通过变量名访问数据(值),但必须遵守修饰符和变量类型的 ”规则“ 限制。


        ~3,变量 修饰符 的种类划分?

                #1,可变性修饰符:let (修饰不可变)、var (修饰可变)

                #2,可见性修饰符:private 、public 等(具体后边补充)

                #3,静态性修饰符:static  (具体后边补充)

        ~4,变量名 就是 一个 标识符 。
        ~5,变量类型 就是 变量的 数据类型。

                // 当 初始化 的数据类型 明确的情况下,变量类型可以省略


        ~6,全局变量、静态变量 定义时 必须初始化赋 值 ,局部变量和成员变量定义时可以不赋,但使用前必须赋否则报错。
        ~7,什么是值类型变量 ?引用型变量 ?

                #1,值类型变量每一个都是一个数据实体,拥有独立的存储数据的空间。

                        / /  如 : 基础数据类型、struct 等

                #2,引用类型变量每一个都是一个数据实体的索引,可以多个变量拥有一个数据存储空间,改变任何一个都会改变数据实体,其他引用型变量引用的值都会改变。

                        / /   如: class、 Array 等

                #3,let 修饰符修饰值类型变量时,值类型变量的数据不可改变;当 let 修饰引用类型变量时,引用类型变量的引用关系不能改变,但值还是可以被改变的。

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

         /*

                可以这么理解:

                值类型变量每一次赋值,就相当于又多了一个人买了同款自行车;

                引用型变量每一次赋值,就相当于又多了一人骑了这台共享自行车。

        */

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

代码实战图片后期补~

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

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

相关文章

C/C++关键字大全

目录 一、const 二、static 三、#define 和 typedef 四、#define 和 inline 五、#define 和 const 六、new 和 malloc 七、const 和 constexpr 八、volatile 九、extern 十、前置 和后置 十一、atomic 十二、struct 和 class 一、const 1、const 关键字可用于定义…

在vscode中远程连接linux进行开发

目录 引言 配置过程 1.本机安装OpenSSH 2.本机生成RSA公钥和私钥 3.将rsa公钥添加到远程linux的authorized_keys文件中 4.vscode安装Remote - SSH插件 5.在vscode中ssh连接服务器 6.在本地vscode操作远程linux文件进行开发 7.在vscode上给远程linux机器需安装插件 常…

路径规划——贪婪最佳优先搜索

路径规划——贪婪最佳优先搜索 学习A算法前先学习一下贪婪最佳优先搜索算法,在学习过程中在网上找了一些博客、文章还有视频来看以深入理解此算法,但是实际情况却是非常令人恼怒。有些文章标题是贪婪最佳优先搜索,内容却是其他的算法&#x…

【密码学】椭圆曲线密码体制(ECC)

椭圆曲线密码体制(Elliptic Curve Cryptography, ECC)是一种基于椭圆曲线数学特性的公钥密码系统。在介绍椭圆曲线之前,我们先来了解一下椭圆曲线的基本概念。 一、椭圆曲线是什么? (1)椭圆曲线的数学定义…

PolSARPro软件安装处理TerraSAR数据(CSDN_20240804)

1. 打开polSARPro软件,点击Enter 2. 点击OK 3. 点击左侧第一个图像,进入PolSARPro Bio。 4. 点击Enter. 5. 点击Environment,选择Single Data Set 6. 选择工作路径 7. 点击No 8. Import -> Spaceborne Sensors ->TerraSAR-X->Quad-P…

C++的vector类

目录 简介 特点 接口 构造函数 迭代器函数 Capacity系列 element access系列 modifiers系列 定义在全局的重载函数 find 总结 简介 vector 是 C 标准模板库(Standard Template Library,简称 STL)中的一个模板类,用于表…

【iOS】——GCD总结

同步和异步的区别 同步执行等待操作完成,而异步执行允许程序在操作完成前继续运行,提高了效率和响应性。这里的关键就是上一个操作需不需要等待当前操作的执行,如果需要就是同步,如果不需要就是异步。 异步有开启新线程的能力但…

如何构建AI产品:OpenAI与前Shopify产品负责人Miqdad Jaffer的经验分享

一、引言 构建AI产品是一项复杂且充满挑战的任务,尤其是当涉及到面向消费者的解决方案时。在最近的一期播客节目中,OpenAI 和前Shopify产品负责人 Miqdad Jaffer 分享了他在构建AI产品的经验和策略。下面我们将探讨构建AI产品的最佳实践,以及…

行为型设计模式1:状态/策略/命令

行为型设计模式:状态/策略/命令 (qq.com)

【秋招笔试】24-08-03-米哈游-秋招提前批笔试题

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍰 米哈游提前批笔试也是来了,本次题目…

初谈表的约束

文章目录 概念空属性默认值空属性和默认值对比列描述zerofill主键 概念 真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是emai…

Open3D 计算点云的归一化协方差矩阵

目录 一、概述 1.1原理 1.2实现步骤 1.3应用 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2数据显示 Open3D点云算法汇总及实战案例汇总的目录地址: Open3D点云算法与点云深度学习案例汇总(长期更新)-CSDN博…

文章相关接口

1.新增文章分类 文章分类的表结构和实体类 实体类 接口文档 实现 新创建CategoryController,CategoryService,(CategoryServiceImpl),CategoryMapper 在CategoryController中添加方法 使用注解PostMapping,没有映射路径,我们在CategoryController的类上添加一个映…

Java 并发编程:Java 中的乐观锁与 CAS

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 025 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进…

【DOCKER】显示带UI的软件

1. Linux 1.1 宿主机开放X server权限 xhost 1.2 启动容器 docker run -it --rm --privilegedtrue --useru20 --workdir/home/u20 \ -e DISPLAYhost.docker.internal:0 u20:dev1.3 测试 # 安装测试软件 sudo apt-get -y install x11-apps# 显示测试程序 xclock2. Windows …

websocket的学习

第一步&#xff1a;配置Spring <dependency><groupId>org.springframework</groupId><artifactId>spring-messaging</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> …

RabbitMQ知识总结(基本原理+高级特性)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 基本原理 消息的可靠性投递 RabbitMQ 消息的投递路径为&#xff…

Idea包含UI内容的插件开发

Idea包含UI内容的插件开发 前言插件效果项目结构配置功能的实现找一个股票接口完成最终的页面配置Plugin.xml源码地址 前言 在这一篇文章中将会做一个包含UI内容的能看股票的插件。 插件效果 首先是在设置中配置股票的编号&#xff0c;如sh000001,sh600519。 接着在侧边栏中…

手机端微信聊天记录无法全部同步到电脑端的微信?搞定它!

前言 昨天晚上深夜…… 哼哼&#xff0c;想哪去了&#xff1f; 昨天有个深圳的哥们跟小白吐槽&#xff1a;手机端的微信聊天记录怎么没办法自动同步到电脑端上&#xff1f; 刚开始小白还以为他是因为电脑端的微信在线也没办法同步聊天记录&#xff0c;所以就给出了答案&…

样式与特效(3)——实现一个测算页面

这次我们使用前端实现一个简单的游戏页面,理论上可以增加很多玩法&#xff0c;&#xff0c;但是这里为了加深前端的样式和JS点击事件&#xff0c;用该案例做练习。 首先需要掌握手机端的自适应&#xff0c;我们是只做手机端玩家页面 。需要允许自适应手机端页面&#xff0c; 用…