首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么不能将不同类型的变量命名为相同?

这个问题涉及到编程语言的基本概念之一:变量命名规则。在编程语言中,变量是用来存储数据的容器,而变量的命名是为了区分不同的变量,使得程序更加清晰易懂。因此,不同类型的变量应该使用不同的命名规则,以避免混淆和错误。

具体来说,不同类型的变量应该使用不同的命名规则,例如:

  • 常量:使用大写字母和下划线组成的名称,例如:MAX_COUNT、PI。
  • 变量:使用小写字母和下划线组成的名称,例如:count、name。
  • 函数:使用小写字母和下划线组成的名称,例如:get_name()。
  • 类:使用大写字母和下划线组成的名称,例如:Person、Student。
  • 对象:使用小写字母和下划线组成的名称,例如:person、student。

此外,为了保持代码的可读性和可维护性,变量命名应该具有一定的意义和含义,能够清楚地表达变量的用途和功能。例如,如果一个变量用于存储学生的姓名,那么可以将其命名为“name”,而不是“n”或“x”。

总之,不同类型的变量应该使用不同的命名规则,以避免混淆和错误。这是编程语言的基本概念之一,也是编写高质量代码的重要组成部分。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么阿里强制 boolean 类型变量不能使用 is 开头?

,后者是包装类,为什么不推荐使用isXXX来命名呢?...到底是用基本类型数据好呢还是用包装类好呢?...规范中对这些均有相应规定,基本数据类型属性,其getter和setter方法是getXXX()和setXXX,但是对于基本数据中布尔类型数据,又有一套规定,其getter和setter方法是isXXX...工作中使用基本类型数据好还是包装类好 咱们举个例子,一个计算盈利系统,其盈利比例有正有负,若使用了基本类型bouble定义了数据,当RPC调用时,若出现了问题,本来应该返回错误,但是由于使用了基本类型...其实阿里java开发手册中对于这个也有强制规定: 因此,这里建议大家POJO中使用包装数据类型,局部变量使用基本数据类型

88620

Java中static用法,static、public为什么不能修饰局部变量?

人为规定,记住就好。 其实这些变量都之所以叫局部变量,其作用域也只限于声明它方法体内。在方法被调用时,这些局部变量获得内存空间,到方法执行结束时,他们所占据内存空间就被释放。 用完就释放。...静态变量在类加载时候创建,随着类消失而消失。 2.调用方式不同 成员变量只能被对象调用。 静态变量能被对象调用,也能被类名调用。 3.别名不一样 成员变量叫实例变量。...静态变量叫类变量。 4.数据存储不一样 成员变量储存在堆内存对象中,也叫对象特有数据。 静态变量储存在方法区静态区,所有也叫对象共享数据。...静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量。当然静态可以访问静态,非静态可以访问非静态。...可以直接通过类名来访问,访问语法为: 类名.静态方法名(参数列表…) 类名.静态变量名 static代码块 static代码块在jvm加载类时候会自动执行,但是static代码块不能在方法内

2.8K10
  • 可以迭代大部分数据类型 for…of 为什么不能遍历普通对象?

    for...of 允许你遍历 Array(数组), String(字符串), Map(映射), Set(集合),TypedArray(类型化数组)、arguments、NodeList对象、Generator...for...of语法: for (variable of iterable) { // statement } // variable:每个迭代属性值被分配给该变量。...of obj){ console.log(item) } // Uncaught TypeError: obj is not iterable 可以看出,for of可以迭代大部分对象甚至字符串,却不能遍历普通对象...简单来说,ES6 为了统一集合类型数据结构处理,增加了 iterator 接口,供 for...of 使用,简化了不同结构数据处理。...而普通对象解构赋值内部机制,是先找到同名属性,然后再赋给对应变量。)

    1.1K30

    为什么Java中类成员变量不能被重写?成员变量在Java中能够被重写么?不会重写成员变量,而是隐藏成员变量访问隐藏域方法

    Paste_Image.png 按照我们已有的多态概念,第二个应该是输出sub才对,但却输出了super。这是为什么呢?...意思就是: 在一个类中,子类中成员变量如果和父类中成员变量同名,那么即使他们类型不一样,只要名字一样。父类中成员变量都会被隐藏。在子类中,父类成员变量不能被简单用引用来访问。...而是,必须从父类引用获得父类被隐藏成员变量,一般来说,我们不推荐隐藏成员变量,因为这样会使代码变得难以阅读。...其实,简单来说,就是子类不会去重写覆盖父类成员变量,所以成员变量访问不能像方法一样使用多态去访问。...访问隐藏域方法 就是使用父类引用类型,那么就可以访问到隐藏域,就像我们例子中代码 就是使用类型转换System.out.println(((Super)c1).s); 翻译自http://www.programcreek.com

    3.5K40

    C++核心准则C.148:使用dynamic_cast进行指针类型转换时,将不能发现目标类看作是有效选项

    type when failure to find the required class is considered a valid alternative C.148:使用dynamic_cast进行指针类型转换时...,将不能发现目标类看作是有效选项 Reason(原因) The dynamic_cast conversion allows to test whether a pointer is pointing...由于转换失败结果仅仅是返回一个空值,这个结果可以在执行时检查。这个特性允许根据结果选择不同路径。...下面的例子描述是Shape_owner增加函数,它接受构造出来Shape对象所有权。对象也会在根据它们几何属性有序加入views容器。在这个例子中,图形没有从几何属性继承。...寻找所需类失败会导致dynamic_cast返回一个空值,而解引用一个空指针会引起无定义行为。因此应该总是认为dynamic_cast结果可能为空并进行检查。

    93610

    【手记】走近科学之为什么明明实现了IEnumerable类型不能调用LINQ扩展方法

    比如Json.NETJObject明明实现了IEnumerable,具体来说是IEnumerable>,按说JObject类型对象是可以直接调用...Select、Where等linq扩展方法,但偏偏就是不行,代码如下: using System.Linq; ... var jobj = new JObject(); var xxx = jobj.Select...(x=>x); //报错:JObject未包含Select定义,也不存在第1个参数为JObjectSelect扩展方法... foreach(var x in jobj) { } //可以 var xxx...= ((IEnumerable>)jobj).Select(x=>x); //也可以 究竟是人性扭曲还是道德沦丧?...,等于JObject直接和间接实现了两个不同IEnumerable,当.Select时候编译器不能确定调用哪个类型Select,所以就这样了。

    80010

    面试官:告诉我为什么static和transient关键字修饰变量不能被序列化?

    当时给回答是:不想被序列化变量我们可以使用transient或static关键字修饰;transient 关键字作用是阻止实例中那些用此关键字修饰变量序列化;当对象被反序列化时,被 transient...修饰变量值不会被持久化和恢复;而static关键字修饰变量并不属于对象本身,所以也同样不会被序列化!...当时没有解释具体为什么static和transient 关键字修饰变量不能被序列化了,这个问题实际上在很多大厂面试中都可能会被问及。我们今天在这篇中进行解释吧。...从输出结果看就更加明了了,int类型直接还原为默认值0,而String类型直接为null。什么原因呢?咱们继续往下看。...四、总结好啦,今天针对为什么static和transient关键字修饰变量不能被序列化进行了一个解释,下次大家在面试时候再被问道就可以这样回答啦,不过,还有的BT面试官会问transient关键字修饰变量真的不能被序列化吗

    17120

    采集、编码、组播 、推流和流媒体RTSP服务于一身EasyScreenLive屏功能组件为什么出现不能正常启动情况?

    互联网屏直播越来越火热,我们知道很多游戏主播都采用方式给观众直播,屏直播组件层出不穷,EasyScreenLive就是TSINGSEE青犀视频团队研发一款简单、高效、稳定集采集,编码,组播...,推流和流媒体RTSP服务于一身屏功能组件,具有低延时, 高效能,低丢包等特点。...EasyScreenLive无法正常启动 用户测试EasyScreenLive屏功能,启动时发现程序报错缺少mfc100d.dll文件,所以不能启动: ?...关于EasyScreenLive屏组件 课堂屏直播: 可以通过PC、手机、平板电脑等多种设备摄像头为视频源,进行对外课堂屏直播服务输出; 网络游戏直播: 游戏直播人只要有一台接入网络电脑,下载并使用...EasyScreenLive进行简单配置即可进入现场直播,用户可以在多终端收看网络游戏直播; 无纸化会议屏: 随着科技发展,无纸化会议服务有效实现了单位与单位、单位与合作商之间对接,屏服务能更好解决客户实际需求

    1.3K40

    养良好C语言编程风格,编优质C语言代码,这才是C语言开始

    即使IDE支持一键定位,一个清楚明白命名,能让人瞬间读懂该变量含义。 2)数组命名 数组命名各单词首字母大写,其他变量。...读者可能会有疑问,数组名后面会有[]符号,与变量区别明显,为什么要用首字母大写方式。实际上,在数组名作为实参传递数组首地址时,往往会省略[]符号,应该数组名就是数组首地址。...我们规定标号命名格式基本变量,使用全部小写名词,但是只用一个单词表示即可。因为标号时候时候或者前面加了goto,或者后面加了“:”,很容易与变量区分开。...5)自定义类型命名 自定义类型命名主要指使用typedef定义类型名,以及结构体类型、共用体类型类型名(而非该类型变量名)。 自定义类型名,只用一个单词,首字母大写。...但是定义这种新类型变量时,命名规则与变量命名规则完全相同。 请自行体会新类型名与新类型变量区别。 6)宏定义命名 宏定义命名全部使用大写字母,单词数不限。

    4K51

    代码洁癖系列(二):命名艺术

    比如:表示消耗多少小时变量命名为h,作用域中还有一个想要表示“小时”相关变量直接命名为h1,一个List类型变量命名为list。...命名为xxxList还合适吗,别人读代码时候会下意识认为这是个List类型变量(尽量避免名称中出现类型名字)。...(为什么不是灾难?因为大部分人都是Ctrl+C/Ctrl+V,这样就减小一些出错几率。看来善用Ctrl+C/Ctrl+V还是很有必要) 做有意义区分 编译器要求我们在同一个区域内不能重复命名。...这时,我们可以把变量命名为addrState、addrFirstName……这样即便单独看某个变量,也会理解它要表达什么。...当然更好方法是定义一个名为Address类,把这些变量放到类中,事实上我们也都是这样做。 当然,有时候也不能添加一些无意义语境。

    46320

    Go 结构体【Go语言圣经笔记】

    下面两个语句声明了一个叫Employee命名结构体类型(结构体定义C语言),并且声明了一个Employee类型变量dilbert: type Employee struct { ID...如果将EmployeeByID函数返回值从*Employee指针类型改为Employee值类型,那么更新语句将不能编译通过,因为在赋值语句左边并不确定是一个变量(译注:调用函数返回是值,并不是一个可取地址变量...因此,完整结构体写法通常只在类型声明语句地方出现,就像Employee类型声明语句那样。 一个命名为S结构体类型将不能再包含S类型成员:因为一个聚合不能包含它自身(该限制同样适用于数组)。...因为在Go语言中,所有的函数参数都是值拷贝传入,函数参数将不再是函数调用时原始变量。...对于结构体类型来说,将包含每个成员名字。 因为匿名成员也有一个隐式名字,因此不能同时包含两个类型相同匿名成员,这会导致名字冲突。

    38920

    小代老师带你深入学习指针!!!深入理解指针(3)

    C/C++会把常量字符串存储到单独⼀个内存区域,当⼏个指针指向⼀个字符串时候,他们实际会指向⼀块内存。但是⽤相同常量字符串去初始化不同数组时候就会开辟出不同内存块。...所以str1和str2不同,str3和str4相同。 2.组指针 2.1 数组指针变量是什么? 之前我们学习了指针数组,指针数组是⼀种数组,数组中存放是地址(指针)。 数组指针变量是指针变量?...: ⽐如我们有数组指针类型 int(*)[5] ,需要重命名为 parr_t ,那可以这样写: typedef int (* parr_t)[5];//新类型名必须在*右边 //运用 int arr...[5]={0}; int (*p)[5]=&arr;//p是函数指针变量 parr_t p2=&arr; 函数指针类型重命名也是⼀样,⽐如,将 void(*)(int) 类型命名为 pf_t ,就可以这样写...函数指针数组 数组是⼀个存放相同类型数据存储空间,我们已经学习了指针数组, ⽐如: int * arr[10]; //数组每个元素是int* 那要把函数地址存到⼀个数组中,那这个数组就叫函数指针数组

    5710

    C语言学习系列-->看淡指针(3)

    ⼀个⼀个常量字符串。...C/C++会把常量字符串存储到单独⼀个内存区域,当⼏个指针指向⼀个字符串时候,他们实际会指向⼀块内存。但是⽤相同常量字符串去初始化不同数组时候就会开辟出不同内存块。...所以str1和str2不同,str3和str4相同。 二、数组指针变量 2.1 概述 前面一篇文章我们讨论过指针数组,本质上是一个数组,一个存放指针数组。...| 函数指针变量名 pf3指向函数返回类型 int (*) (int x, int y) //pf3函数指针变量类型 #include int Add(int x,...需要重命名为 parr_t ,那可以这样写: typedef int(*parr_t)[5]; //新类型名必须在*右边 函数指针类型重命名也是⼀样,⽐如,将 void(*)(int) 类型命名为

    24010

    在windows系统用visual studio 2017生成Lua解释器、编译器、动态链接库dll、静态链接库lib

    中,右键点击项目名 lua, 点击属性,最上方配置设置为Release, 平台设置为x64(根据windows系统, 32位系统选择Win32)设置   配置类型 为 应用程序(.exe) ,点击应用...生成Lua编译器(luac.exe)步骤与1相同, 但同样需要新建项目,命名为luac, 选中桌面上luac文件夹作项目文件夹,需要在src文件夹中排除文件是lua.c, 在项目属性中设置   配置类型...生成lua动态链接库(dll)步骤与1相同,需要新建项目,命名为luadll, 选中桌面上luadll文件夹作项目文件夹,需要在src文件夹中排除文件是 lua.c 、 luac.c 、 lua.hpp...生成lua静态链接库(lib)步骤与1相同,需要新建项目,命名为lualib, 选中桌面上lualib文件夹作项目文件夹,需要在src文件夹中排除文件是 lua.c 、 luac.c 、 lua.hpp...下载后解压,添加目录到环境变量即可使用

    21810

    C语言——I 深入理解指针(三)

    C/C++会把常量字符串存储到单独⼀个内存区域,当几个指针指向同一个字符串时候,他们实际会指向⼀块内存。但是⽤相同常量字符串去初始化不同数组时候就会开辟出不同内存块。...所以str1和str2不同,str3和str4相同。 指针字符内容相同字符串只会保存一份,而创建字符串会存在于不同内存中 二、数组指针变量 1、数组指针变量是什么?...return NULL; } int main() { char* (*pt)(int, char) = test; return 0; } 这两段代码就说明了函数指针变量类型必须与函数类型必须相同...int(*)[5] ,需要重命名为 parr_t ,那可以这样写: typedef int(*parr_t)[5]; //新类型名必须在*右边 函数指针类型重命名也是⼀样,⽐如,将 void(...*)(int) 类型命名为 pf_t ,就可以这样写: typedef void(*pfun_t)(int);//新类型名必须在*右边 那么要简化代码2,可以这样写: typedef void(

    12510

    我与C语言二周目邂逅vlog——6.指针

    字符指针变量 在指针类型中我们知道有⼀种指针类型为字符指针 char* : int main() { char ch = 'w'; char *pc = &ch; *pc = 'w'; return...C/C++会把常量字符串存储到单独⼀个内存区域, 当⼏个指针指向⼀个字符串时候,他们实际会指向⼀块内存。但是⽤相同常量字符串去初始 化不同数组时候就会开辟出不同内存块。...所以str1和str2不同,str3和str4相同。   2. 数组指针变量  下⾯代码哪个是数组指针变量?...对于数组指针和函数指针稍微有点区别: ⽐如我们有数组指针类型 int(*)[5] ,需要重命名为 parr_t ,那可以这样写: typedef int(*parr_t)[5];//新类型名必须在*右边...函数指针类型重命名也是⼀样,⽐如,将 void(*)(int) 类型命名为 pf_t ,就可以这样写:  typedef void(*pfun_t)(int);//新类型名必须在*右边

    5610

    zephir-(8)类和对象1

    #zephir-类和对象1# ##前言## 先在这里感谢各位zephir开源技术提供者 zephir全面使用对象编程,这就是为什么拓展使用方式只能是方法和类,你也将看到,大部分时间,运行时错误引发异常...今天讲一步步讲解zephir类方法变量范围等等使用,希望大家喜欢....注:笔者水平有限,说不正确地方希望大家多多指正,一交流技术 附上: 喵了个咪博客:w-blog.cn zephir官网地址:http://zephir-lang.com/ github地址:https...##可修改性## Final:如果一个方法使用了这个修饰符将不能被重载 Deprecated:方法标记为“Deprecated”抛出E_DEPRECATED错误时调用。...##返回类型提示## 类和接口中方法可以返回类型提示,这些将为编译器提供有用额外信息 通知您关于您应用程序中错误。

    63530

    C语言之指针详解(3)

    C/C++会把常量字符串存储到单独一个内存区域,当几个指针指向⼀个字符串时候,他们实际会指向⼀块内存。但是用相同常量字符串去初始化不同数组时候就会开辟出不同内存块。...所以str1和str2不同,str3和str4相同。 二、数组指针变量 2.1 数组指针变量是什么? 之前我们讲了指针数组,是一种数组,里面的元素是指针,存放是地址。...比如,将int*重命名为ptr_t,可以这样写: typedef int* ptr_t; 但是对于数组指针和函数指针稍微有点区别,因为其它类型都是放在变量名前面的,而这两种类型变量名是放在类型内部。...比如我们有数组指针类型int (*)[5],需要重命名为parr_t,就可以这样写: typedef int(*parr_t)[5];//新类型名必须在*右边 函数指针类型重命名也是一样,比如将...关键字更改类型时候把原来用这个类型定义变量变量位置改为新类型名即可。

    6210
    领券