Project1

标题: 关于Ruby中的变相调用 [打印本页]

作者: XYZ加农炮    时间: 2015-1-14 19:10
标题: 关于Ruby中的变相调用
不清楚有什么规律……
为什么my_var = 233333 等同于 my_var=(233333) ?
还有就是[]方法似乎可以这样?
def [](id) return @a[id]; end
@taroxd @RyanBern  
作者: RyanBern    时间: 2015-1-14 19:20
1.括号的作用是改变运算顺序,在这里加不加都一样。
2.[](id)是一个方法,也叫做索引器,它可以给予对象类似于数组的取索引以及按照索引赋值的功能。换言之,任何对象都可以定义这个索引器,定义完毕后你就可以像数组那样使用它。例如Game_Variables对象,Game_Switches对象,Game_SelfSwitches对象。
作者: 晴兰    时间: 2015-1-14 21:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: XYZ加农炮    时间: 2015-1-18 21:45
RyanBern 发表于 2015-1-14 19:20
1.括号的作用是改变运算顺序,在这里加不加都一样。
2.[](id)是一个方法,也叫做索引器,它可以给予对象类 ...

可能没有理解我的意思?
我的意思是为什么my_method=1等同于my_method = 1……
希望您能够回答一下,谢谢O(∩_∩)O谢谢
作者: 恐惧剑刃    时间: 2015-1-19 08:53
RGSS1 中的 = 确实比较奇怪!
a = 1#(两边都有空格)
a=1#(没有空格)
a= 1#(左没空格,右边有空格)
a =1#(左有空格,右边没空格)
甚至可以是
a                             =                      1
但是如果放到第二行就会报错!
比如:
a
= 1
此时可以使用换行符 \

a\
                    =                      1
这样就不会报错了

不止是 = 号
像 [] {} 都是这样的


a = []
a[50] = 0
p a[

50

]

不过要拆开半边符号 [ {

如果是在等号后边就可以随意换行

hash \
       =
{

    1 => 5 ,
    2 => 6

}

实际上和 hash = {1=>5,2=>6} 是一样的


作者: zeldafd    时间: 2015-1-19 17:23
我想說的是...有沒有空格只是個人的代碼風格...跟什麼值沒關係吧...




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