[设计方案] Cesno 变量
写在前面
这里是Ozelot。一个正在学习编程,希望和各位大佬一起交流学习的大学生。这是我关于编程语言Cesno的设计方案,欢迎大家评论交流!
提示: 最终设计尚未决定,可能还有很多设计上的不足需要优化,故内容可能会发生变动。因为没法不加标签,我不得不打了“程序员”标签。希望没有给大家造成困扰。
注意: 因为Cesno并未制作完成,这里只记录Cesno的语法规范。正因如此,代码部分的高亮可能不能保证每一次都正确显示。如果影响了阅读,我感到十分抱歉!
变量的基础
这里将要写有关于变量的基础知识。
标识符
标识符是编程语言中不可或缺的一个概念,它代表了一个“东西”的名字(这个东西可以是变量、函数、类……)。
Cesno的标识符和其他语言类似。标识符中可以有数字、英语字母、“$”符号以及“_”符号,但数字不能出现在标识符的第一个字符。标识符没有长度限制,也允许存在除了一些特殊字符和数字外的其他字符(因为Cesno支持UTF-8编码格式)。但为了可读性、简易性等等原因,标识符不推荐过长(比如超过了64个字符,或任何让人看了摸不着头脑的长度)的名字,也不推荐使用ASCII字符外的其他字符做标识符。
起始字符 | 起始字符之后 | |
---|---|---|
数字 | × | 〇 |
英语字母 | 〇 | 〇 |
"$"、"_" | 〇 | 〇 |
如下是在Cesno中常用的几种类型:
类型名(英文) | 类型名(中文) | 简要解释 |
---|---|---|
int |
整数型(或“整型”) | 存储-2147483648至2147483647的整数 |
float |
浮点型 | 遵循IEEE标准中的双精度浮动小数点数 |
bool |
布尔型(或“真伪型”) | 存储一个真值(true )或一个伪值(false ) |
char |
字符型 | 存储一个以UTF-8方式编码的字符 |
string |
字符串型 | 存储一系列以UTF-8方式编码的字符 |
object |
对象型 | 所有具体类型的基类 |
类型名(英文) | 类型名(中文) | 简要解释 |
---|---|---|
void |
无类型(或“虚型”) | 用来标识一个函数没有返回值 |
any |
任意型(或“动态类型”) | 用来标识无固定类型 |
never |
空位型(或“空型”) | 用来标识绝对不会出现类型(void 是实际无返回值,而never 更倾向于逻辑层面不可能有类型信息) |
声明变量 声明变量需要先写出类型的名字,其次写上变量的名字(变量名遵循标识符)。比如:
int a;
这完成了对一个整数型变量
a
的声明。声明变量时也可以同时给予初始值,就像这样:int b = 10;
Cesno常用类型的声明和赋值如下:
intx = 100;
floatd = 0.5;
boolt = true;
charc = 'C';
string s = "Hello, everyone.";
object o = 20;
// 事实上,object类变量可以接受任何具体类型的赋值
// 比如上面的类型都可以填入object。
如果要声明的变量没有固定的类型(即“动态类型”),可以采用关键字
var
。这时,Cesno不会在赋值时检查类型是否匹配。动态类型有时可以提供方便,所以请适当地使用它。Cesno的动态类型并不意味着变量“没有类型”。事实上,变量类型一直是静态的,只不过表现为动态。var x = 3;
// 此时,x的类型由字面量 3 推导为 int 型
x += 7;
// x现在等于10,这种写法正确的
x = "str";
// x现在为 string 型,由字面量 "str" 推导而来
x = 1 / x;
// 这会报错。Cesno在此时能确定 x 在这里就是 string 型,
// 而除号不适用于 int 与 string 一起运算。
// 但如果程序流程包含了选择,Cesno便不能确定采用动态类型的变量的具体类型,
// 而这可能会导致潜在的错误。所以请勿滥用 var 来定义变量。
销毁变量 当你不需要一个变量继续存在时,你可以销毁它们来节约你的内存。使用操作符
delete
可以轻松取消掉变量的声明,并释放内存空间。比如这样:int a = 10;
delete a;
当然你也可以使用
delete
一次性释放多个变量,而且你不需要区分它们是否是数组:inta = 20;
int[] b = {30, 50, 100, 200};
delete a, b;
当一个使用了多态的变量将要被销毁时,无需强制转换类型:
object x = 10;
delete x;
// 正确,会释放掉 int 大小的空间,并删除 x 的声明
推荐阅读
- PMSJ寻平面设计师之现代(Hyundai)
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 爱琐搭配(喜欢复古、冷淡,像这种双环设计的气质耳环)
- 定制一套英文学习方案
- 托福听力高分备考方案
- 别墅庭院设计,不同的别墅庭院设计也给人视觉上完全不一样的!
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- Spark|Spark 数据倾斜及其解决方案
- 数据库设计与优化