设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1038|回复: 9
打印 上一主题 下一主题

Rm编写脚本时,变量用中文字符,会有影响吗?例如..

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-5-17
帖子
5
跳转到指定楼层
1
发表于 2009-5-19 17:11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
2
发表于 2009-6-12 08:00:00 | 只看该作者
速度是不会影响的,空间方面值得探讨……

对于编译性语言(也包括 Java 这种特殊的半编译性语言),变量名只是在编译时用来标识一块内存的标识符~编译的时候编译器会把所有符号放到一个符号表中,在编译完成后整个程序的源代码都被翻译为了机器码,而机器码是没有什么变量名的(其实在汇编层就已经没有变量名的概念了),所有变量名都被替换为了他们指向的内存地址,所以在运行的时候一个已经“不复存在”的东西是不会占用任何空间的~

然而 Ruby 是解释性的语言,在下对解释性语言也不太熟,下面是一些个人简介:
解释性语言翻译一句,执行一句。所以在翻译到带变量名的语句之前,解释器不会去管这个变量叫张三还是李四。Ruby 解释器在解释源代码的时候,每解释到一个带符号的语句,发现专门用来保存符号的符号表中没有这个符号,就会把该符号添加到符号表中(不管该语句有没有被执行,只要解释器看到这个符号),以便之后用来判断相同的符号是变量,方法还是其它东西。所有符号(唯一)都会由一个对应的 Ruby 符号对象(也是唯一的)来表示,而这些符号的生命期和整个程序的生命期是相同的,所以在程序运行时应该是会一直占用内存的

这就和 Java 常量字符串池的机制一模一样——一个字符串第一次出现时会被添加到常量池中,第二次出现就会搜索池中的常量字符串,发现已经有这个对象,于是直接引用这个之前生成的对象,而不会再次生成一个内容一模一样的字符串对象,浪费内存空间~这些唯一的对象只有在 Java 虚拟机退出,释放其内存的时候才会消失,在程序运行的时候它们是一直在常量池中占据着空间的

至于中文英文符号的不同,不应该在于它们是两种语言这一点,而应该在于符号本身的长度:
“asdfasdfadsfasd”这个符号肯定是比“计时”这个符号要占更多空间的~
系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
版主对此帖的认可:『爆加诚意分,很感激你作出的贡献...』,积分『+100』。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2007-9-4
帖子
251
3
发表于 2009-5-20 06:08:47 | 只看该作者
记得没错的话ruby定义变量只允许字母或下划线做开头,并且只允许使用字母下划线或者数字。汉字用不了吧,身边无RM未证实。
[fly][/fly]
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-10-16
帖子
450
4
发表于 2009-5-20 06:10:30 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

5
发表于 2009-5-20 06:18:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-10-16
帖子
450
6
发表于 2009-5-20 06:20:05 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

7
发表于 2009-5-20 06:22:26 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
8
发表于 2009-5-20 07:59:05 | 只看该作者
测试 = 0
@测试 = 0
@@测试 = 0
$测试 = 0

test = 0
@test = 0
@@test = 0
$test = 0

TEST = 0

p defined?(TEST)    # 常量

p defined?(测试)    # 局部变量
p defined?(test)    # 局部变量

p defined?(@test)   # 实例变量
p defined?(@测试)   # 实例变量

p defined?(@@测试)  # 类变量
p defined?(@@test)  # 类变量

p defined?($test)   # 全局变量
p defined?($测试)   # 全局变量

{/pz}……
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

9
发表于 2009-5-25 03:58:06 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-10-16
帖子
450
10
发表于 2009-5-25 04:07:25 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-27 08:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表