Project1

标题: 请问一下RGSS的函数或者变量的命名规范 [打印本页]

作者: wangzh9173    时间: 2015-4-12 14:32
标题: 请问一下RGSS的函数或者变量的命名规范
下面这段代码中 "[]="是函数名称吗?如果是,为什么不是以字母或者下划线开头?如果不是,那是啥?
最后问个问题,可以在每行表达式后面加分号吗?
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Game_SelfSwitches
  3. #------------------------------------------------------------------------------
  4. #  处理独立开关的类。编入的是类 Hash 的外壳。本类的实例请参考
  5. # $game_self_switches。
  6. #==============================================================================
  7.  
  8. class Game_SelfSwitches
  9.   #--------------------------------------------------------------------------
  10.   # ● 初始化对像
  11.   #--------------------------------------------------------------------------
  12.   def initialize
  13.     @data = {}
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 获取独立开关
  17.   #     key : 键
  18.   #--------------------------------------------------------------------------
  19.   def [](key)
  20.     return @data[key] == true ? true : false
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 设置独立开关
  24.   #     key   : 键
  25.   #     value : ON (true) / OFF (false)
  26.   #--------------------------------------------------------------------------
  27.   def []=(key, value)
  28.     @data[key] = value
  29.   end
  30. end

作者: taroxd    时间: 2015-4-12 14:38
1. 是。以下方法(运算符)可以用这种方式定义(Ruby 1.9 以上。XP 有一部分不支持):
! ~ +@ ** -@ * / % + - << >> & | ^ > >= < <= <=> == === != =~ !~

2. 可以,不过不建议这么做
作者: wangzh9173    时间: 2015-4-12 14:42
taroxd 发表于 2015-4-12 14:38
1. 是。以下方法(运算符)可以用这种方式定义(Ruby 1.9 以上。XP 有一部分不支持):
! ~ +@ ** -@ * / % ...

以下方法(运算符)可以用这种方式定义(Ruby 1.9 以上。XP 有一部分不支持):
! ~ +@ ** -@ * / % + - << >> & | ^ > >= < <= <=> == === != =~ !~

这段话要怎么理解?
作者: taroxd    时间: 2015-4-12 14:48
wangzh9173 发表于 2015-4-12 14:42
以下方法(运算符)可以用这种方式定义(Ruby 1.9 以上。XP 有一部分不支持):
! ~ +@ ** -@ * / % + -  ...



举个完全没有意义的例子:
RUBY 代码复制
  1. class Fixnum
  2.   def +(other)
  3.     3
  4.   end
  5. end
  6.  
  7. p 1 + 1   # => 3

作者: wangzh9173    时间: 2015-4-12 14:53
taroxd 发表于 2015-4-12 14:48
举个完全没有意义的例子:

class Fixnum

意思是重新定义这些运算符的功能?




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