语言的枚举

不同语言的枚举

  • C/C++枚举本质是整型,在Java中是对象,而非基本类型,可通过instanceof Object判断是否是对象类型。C#与Java不同,枚举是值类型。
  • C语言更纯粹,枚举绝对当成整数,可以对枚举变量用整数赋值,甚至可以做自增运算。C++做了一定约束,可以将枚举变量赋值给整数,但不能反过来,另外不允许自增之类的运算。从使用上,C#必须带上枚举类型名,C/C++完全不用顾忌。
  • Java语言的枚举更严格,因为它是对象,绝对不能和整数有任何直接来往。话说面向对象语言应该更早引入枚举,事实上Java 5.0版本才引入枚举类型。
  • 大部分脚本语言都对于枚举没太大兴趣,一方面枚举的静态类型不符合脚本动态类型。当然,万事不必然,Python 3.4之后和Javascript ES6之后也支援枚举。
  • Ada是一门对枚举数值范围支持很好的语言,也许源自它本身是安全设计。
  • C#枚举不能定义在方法里面,可以放在命名空间或者类里面。C/C++允许在函数中定义枚举。

枚举的内部类型

  • C/C++常规枚举默认类型为整型,具体取决于实现。C++11对于作用域内枚举引入了类型控制,默认是int, 可指定枚举使用的类型,比如short或者long. 形如:enum class : short Weekday { Monday, Tuesday };


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值