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

03。仓颉程序结构

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 修饰引用类型变量时,引用类型变量的引用关系不能改变,但值还是可以被改变的。

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

         /*

                可以这么理解:

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

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

        */

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

代码实战图片后期补~

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 安全基础学习-CRC理解与计算
  • JavaScript入门day6
  • VUE2项目打包dist后dist包中index打开空白页
  • Linux系统窗口水印难点分析
  • 使用FastChat快速部署LLM服务
  • Flask 介绍
  • 【多线程】阻塞队列
  • TOA/TDOA测距定位,三维任意(>3)个锚节点,对一个未知点进行定位|MATLAB源代码
  • Python网络爬虫核心面试题
  • VRF 算法流程及代码实现
  • #565. 查找之大编号
  • OpenCV||超详细的图像平滑
  • 搭建高可用OpenStack(Queen版)集群(一)之架构环境准备
  • Python面试题:结合Python技术,如何使用PyBrain进行神经网络和机器学习
  • Linux软硬链接和动静态库
  • 《Java编程思想》读书笔记-对象导论
  • CAP 一致性协议及应用解析
  • ES6 学习笔记(一)let,const和解构赋值
  • sessionStorage和localStorage
  • ucore操作系统实验笔记 - 重新理解中断
  • 关于Flux,Vuex,Redux的思考
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 模型微调
  • 前端自动化解决方案
  • 区块链分支循环
  • 使用agvtool更改app version/build
  • 一份游戏开发学习路线
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • !!Dom4j 学习笔记
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计高校学生选课系统
  • (回溯) LeetCode 77. 组合
  • (十三)Flask之特殊装饰器详解
  • (限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .NET BackgroundWorker
  • .net core控制台应用程序初识
  • .Net IE10 _doPostBack 未定义
  • .NET 材料检测系统崩溃分析
  • .net开发时的诡异问题,button的onclick事件无效
  • .net下简单快捷的数值高低位切换
  • //usr/lib/libgdal.so.20:对‘sqlite3_column_table_name’未定义的引用
  • :not(:first-child)和:not(:last-child)的用法
  • @hook扩展分析
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限