Project1

标题: 一个非常非常小的Ruby问题 [打印本页]

作者: 有丘直方    时间: 2017-7-24 15:58
标题: 一个非常非常小的Ruby问题
对于这个问题我曾一度感到有些困惑。。。
在一些地方(忘了哪些地方),说首字母大写的标识符(而且不带“@”“$”什么乱七八糟的东西)是常量;还有一些地方(我也忘了)说全部字母大写的标识符(同样不带乱七八糟的前缀)是常量,,
不过虽然无论怎么弄,在Ruby的世界连常量都可以随意修改(warn只需要修改一下一个全局变量就全消失了),而且就算是大写还有可能是叫做“方法”的东西不是,但这仍然是一个本质性的问题。。。
我知道很多人,包括标准库,都是用全大写来表示常量;但比如说我就喜欢只有首字母大写的东西(我还知道有人喜欢用全局变量和类变量什么的。。。)
看上去在RGSS3只需要首字母大写就会被认为是常量?那为什么还需要全部都大写呢?
(另外附带一个更小的问题,,像“++”这样在Java很简单方便的东西为啥在Ruby定义不出来啊)
作者: taroxd    时间: 2017-7-24 18:07
这是 Ruby 中的 convention。你有充足的理由的话当然可以不遵守。

CamelCase(RGSS 中是 Camel_Case 感觉挺难看的) 通常表示内容是模块和类的常量,而 SCREAMING_SNAKE_CASE 通常表示其他常量。这样做的好处是看到常量名就知道他是不是类/模块了。


下面那个,大概是因为怕有人玩出 (a++)+(++a) 的花样吧……
作者: 张咚咚    时间: 2017-7-24 18:08
本帖最后由 张咚咚 于 2018-12-17 09:54 编辑

可以c = 5 + (a+=1)-1、c = 5 + (a+=1),满足a++和++a




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1