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

仓颉 -- 标识符 , 变量以及数据类型详解

仓颉 – 标识符 , 变量以及数据类型

一. 标识符

1. 普通标识符

  1. 由数字 , 字母 , 下划线构成 – cangjie , cangjie_2024
  2. 由英文字母开头,后接零至多个英文字母、数字或下划线。
  3. 由一至多个下划线开头,后接一个英文字母,最后可接零至多个英文字母、数字或下划线。 cangjie_c919_o_o
  4. 不能由关键字作为普通标识符

2.原始标识符

​ 除此之外仓颉还提供了另一种标识符叫做原始标识符主要用于将关键字作为标识符的场景

if while

在这里插入图片描述

二. 变量

1. 可变变量

通过关键字var声明

var 变量名 : 变量类型 = 值

var name : String = "cangjie"
var age : Int64 = 18name = "jixu"
age = 19

2.不可变变量

通过let 关键字let声明

let 变量名 : 变量类型 = 值

let str : String = "你好"

ps: 当不可变变量等号右边为表达式的时候运行时求值

3. 常量

通过const关键字let声明

const 常量名 : 常量类型 = 值

const name : String = "jixu"

ps: 当常量右边为表达式时编译的时候求职

在这里插入图片描述

三. 数据类型

1. 什么是类型

​ 类型就像一份协议,规定了一块数据的组织结构及相应的解析/操作方发

​ 相同的数据,赋予不同的类型/协议,解析和操作结果并不相同

​ 如果程序中传递的变量不具有类型信息,就可能导致数据误读/误操作等问题,产生预期之外的运行结果。

​ 仓颉编程语言是静态强类型语言,具有完备的类型系统,在编译时通过类型检查避免数据误用问题,并提升代码的可维护性。

在这里插入图片描述

2. 基础数据类型

1. 整型

仓颉的整型由Int8 , Int16 , Int32 , Int64 , Uint8 , Uint16 , Uint32 , Uint64 构成

有符号整型(Signed Integers)
int8:占用 8 位(1 字节)的存储空间,表示范围从 -128 到 127。
int16:占用 16 位(2 字节)的存储空间,表示范围从 -32,768 到 32,767。
int32:占用 32 位(4 字节)的存储空间,表示范围从 -2,147,483,648 到 2,147,483,647。
int64:占用 64 位(8 字节)的存储空间,表示范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
有符号整型可以表示正数、负数和零。它们使用二进制补码表示法来存储负数。

无符号整型(Unsigned Integers)
uint8:占用 8 位(1 字节)的存储空间,表示范围从 0 到 255。
uint16:占用 16 位(2 字节)的存储空间,表示范围从 0 到 65,535。
uint32:占用 32 位(4 字节)的存储空间,表示范围从 0 到 4,294,967,295。
uint64:占用 64 位(8 字节)的存储空间,表示范围从 0 到 18,446,744,073,709,551,615。
无符号整型只能表示非负整数(包括零)。由于它们不需要表示负数,因此它们的数值范围比相同位数的有符号整型大一倍。

使用场景
选择哪种整型数据类型取决于你的具体需求,包括你预期的数据范围、是否需要表示负数以及内存使用的考虑。
在处理大量数据时,较小的数据类型(如 int8 或 uint8)可以显著节省内存和存储空间。
在需要确保数值不会超出特定范围时,使用固定大小的整型(如 int32 或 uint32)可以提供额外的安全保障。
在进行跨平台或跨语言开发时,了解不同系统或语言对整型数据类型的支持情况也很重要。例如,一些较老的系统或语言可能不支持 int64 或 uint64,或者它们的实现方式可能与现代系统有所不同。

var age : Int64 = 18
var size : UInt = 8

2. 浮点数类型

仓颉的浮点型由Float16 , Float32 , Float64 构成

var a : Float16 = 1.33
3. 布尔类型

仓颉的布尔类型由Bool 构成

var b : Bool = true
4. 字符类型

仓颉的字符类型由Rune构成

let e:Rune= '仓'
5. 字符串类型

仓颉的字符串类型由String构成

字符串类型提供了使用+进行拼接 . 以及"“” “”"三个双引号用来保留原来的文本格式

var name : String = "仓颉"
// 字符串拼接
var c : String = "你好" + "仓颉"
// 保留原格式
var d : String = """若到江南赶上春,千万和春住"""

在这里插入图片描述

相关文章:

仓颉 -- 标识符 , 变量以及数据类型详解

仓颉 – 标识符 , 变量以及数据类型 一. 标识符 1. 普通标识符 由数字 , 字母 , 下划线构成 – cangjie , cangjie_2024由英文字母开头,后接零至多个英文字母、数字或下划线。由一至多个下划线开头,后接一个英文字母,最后可接零至多个英文…...

CC++:贪吃蛇小游戏教程

❀创作不易,关注作者不迷路❀😀😀 目录 😀贪吃蛇简介 😃贪吃蛇的实现 🐍生成地图 🐍生成蛇模块 ❀定义蛇的结构体 ❀初始化蛇的相关信息 ❀初始化食物的相关信息 🐍光标定位和…...

C#中投影运算的深入解析与实例应用

文章目录 1、投影运算的基本语法2、投影运算的高级用法3、投影运算在向量空间中的运用4、投影运算在数据库和XML中的实际应用5、投影运算能用于哪些实际场景?6、结论 在C#编程中,投影运算是一种常用的数据操作技术,它可以将一个数据集合转换成…...

HTML+CSS練習---空隙產生記錄

1.第一層和第二層之間的間隙&#xff1a;以為導航欄超過高度朝下擠下來了 2.第2層兩個div中的空隙 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style>font-face {f…...

【leetcode】相同的树、另一棵树的子树、翻转二叉树(利用深度优先遍历)

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;数据结构、LeetCode专栏 &#x1f4da;本系…...

Linux系统窗口水印难点分析

给应用程序加水印是保护数据的一种方式&#xff0c;window上可以通过给进程通过注入的方法给进程的窗口创建一个同大小的副窗口&#xff0c;在副窗口上绘制水印内容&#xff0c;同时设置副窗口透明同时透传事件&#xff0c;这样就可以达到在源窗口上显示水印的效果且不影响程序…...

LabVIEW与CANopen实现自动化生产线的设备控制与数据采集

在某工厂的自动化生产线上&#xff0c;多个设备通过CANopen网络进行通信和控制。这些设备包括传感器、执行器和PLC&#xff0c;它们共同负责监测和控制生产过程中的关键参数&#xff0c;如温度、压力、速度等。为了实现对整个生产线的集中监控和管理&#xff0c;工厂决定使用La…...

吃惊!这个Windows双系统方法逆天了|UEFI篇

前言 最近小白在折腾别的系统教程&#xff0c;偶然间发现居然有一个很nice的Windows双系统教程。于是于是&#xff0c;果断尝试了一下&#xff0c;发现真的很可行&#xff01; 这个双系统的办法并不需要使用到WinPE系统&#xff0c;因此并不需要使用到U盘&#xff0c;只需要在…...

【C语言基础】C语言试题复习

1. 执行下面的程序段后&#xff0c;k 的值是_______。 int k1,n325; do { k*n%10;n/10;}while(n); 解析&#xff1a; 给定 n 325 和初始 k 1&#xff0c;代码中的循环将会进行如下操作&#xff1a; 第一次循环:n % 10 得到 5&#xff0c;因此 k * 5&#xff0c;即 k 1 * 5 …...

一拖三无线充底座-带给你极致的便利生活

随着科技的不断进步&#xff0c;无线充电技术已经逐渐渗透到我们日常生活的方方面面&#xff0c;一拖三无线充底座作为其中的佼佼者&#xff0c;以其高效、便捷的特点受到广大用户的青睐。本文将从电磁感应原理、多线圈设计、频率匹配、电能传输、功率分配以及充电管理六个方面…...

探索 Electron:打造深度书籍挖掘机的搜索体验

Electron是一个开源的桌面应用程序开发框架&#xff0c;它允许开发者使用Web技术&#xff08;如 HTML、CSS 和 JavaScript&#xff09;构建跨平台的桌面应用程序&#xff0c;它的出现极大地简化了桌面应用程序的开发流程&#xff0c;让更多的开发者能够利用已有的 Web 开发技能…...

tomato靶场

扫描网址端口 访问一下8888 我们用kali扫描一下目录 访问这个目录 产看iofo.php源码&#xff0c;发现里面有文件包含漏洞 访问/etc/passwd/发现确实有文件包含漏洞 远程连接2211端口 利用报错&#xff0c;向日志文件注入木马&#xff0c;利用文件包含漏洞访问日志文件 http:/…...

【Vue】computed计算对象不生效问题?

问题描述 最近使用vuex来管理全局状态&#xff0c;遇到了computed计算state中数据却不生效的问题。 原因分析&#xff1a; 先看vue官网示例&#xff1a; computed接收的是一个getter函数&#xff0c;但是这个getter函数是懒加载并且有缓存的&#xff0c;当计算属性最终计算…...

算法小白的进阶之路(力扣9~12)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...

DOCKER容器中安装JDK1. 8 详细步骤

1.通过查找JDK8的远程镜像 docker search jdk 2.选择一个远程镜像下载到本地仓库 #拉取镜像 docker pull kdvolder/jdk8#查看镜像 docker images 可以看到REPOSITORY列下面出现了kdvolder/jdk8 3.在docker容器中运行jdk8的镜像 docker run -di --namejdk1.8 kdvolder/jdk…...

计算机毕业设计Python+Tensorflow股票推荐系统 股票预测系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

1、用pycharm打开项目&#xff0c;一定要打开包含manage.py文件所在文件夹 2、配置解释器&#xff1a;建议使用Anaconda(Python 3.8(base))&#xff0c;低于3.8版本的&#xff0c;页面会不兼容 3、安装依赖库&#xff1a;打开pycharm的终端&#xff0c;输入&#xff1a; pip in…...

深度学习常见的卷积和注意力机制文章集锦(持续更新)

卷积 友好链接1 卷积原理&#xff1a;几种常用的卷积&#xff08;标准卷积、深度卷积、组卷积、扩展卷积、反卷积&#xff09; 友好链接2 一文看尽深度学习中的20种卷积&#xff08;附源码整理和论文解读&#xff09; 友好链接3 深度学习中组卷积(Group convolution)、深度卷积…...

如何在立创EDA的PCB电路板导入logo图案

1、首先制作好logo图案&#xff0c;一般为公司logo图标&#xff0c;如下图 2、打开立创EDA的PCB文件&#xff0c;如下图 3、将PCB的图层切换到丝印层&#xff1a; 4、然后选择EDA菜单栏的放置---图片&#xff1a; 5、进入后点击选择图片&#xff0c;将logo图片导入&#xff0c;…...

springboot集成canal

目录 一、打开mysql的binlog1.1 打开 MySQL 配置文件 my.cnf&#xff08;通常位于 /etc/mysql/my.cnf 或 /etc/my.cnf&#xff09;并添加或修改以下设置&#xff1a;1.2 重启mysql服务1.3 验证是否生效 二、 部署canal 服务端&#xff08;docker&#xff09;2.1 下载启动脚本(可…...

leetcode数论(2447. 最大公因数等于 K 的子数组数目)

前言 经过前期的数据结构和算法学习&#xff0c;开始以OD机考题作为练习题&#xff0c;继续加强下熟练程度。 描述 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 nums 的子数组中元素的最大公因数等于 k 的子数组数目。 子数组 是数组中一个连续的非空序列…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面&#xff0c;接口成功记录日志&#xff0c;失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...