新手问题 关于方法名的疑问

wwwicbd · 2016年02月15日 · 最后由 jasl 回复于 2016年02月15日 · 1604 次阅读
class Name
  attr_accessor :name

  def initialize(name="initName")
    @name = name
  end

  def setBob
    self.name = "Bob"
    # self.name= "Bob"
    # self.name=("Bob")
  end
end

ini = Name.new
p ini.name
ini.setBob
p ini.name

疑问 1

既然『=』等于号是方法名的一部分,为什么 setBob 第一行 中间可以有空格?

疑问 2

rubyMine8 里的显示效果,符号 name 是没有冒号的,就是专门这么设计的吗?

1 这是语法糖 2 你的 RubyMine 配置可能有错,或者是 RubyMine 做智能感知有误(通常发生在上下文有name的时候,IDE 误以为这里需要调用name方法来确定输入值),这里按语义应该为:name

#1 楼 @jasl 感谢耐心回答!

  1. 像这样的语法糖在文档里要怎么搜呢?
  2. 配置是默认的没改过,全选之后复制到 sublime 里看的确是有『:』冒号的,所以我猜这是设计而不是 bug。不熟 ruby 和 rails 所以担心会造成误解

#2 楼 @wwwicbd 1 要 Ruby 语言自身文档的话你可以在 https://www.ruby-lang.org/en/documentation/ 里找,不过,绝大多数语法糖,Ruby 的语法书里都会讲到 2 那这是你代码高亮配置的问题了,听你描述是 symbol 的 : 被高亮成了白色,和背景色相同,具体我不清楚你那边的情况,你可以在配置里修改、更换高亮配色方案,或者重置 RubyMine 配置试试

#3 楼 @jasl

  1. 我是用http://apidock.com/ruby/ , 比如想看一下运算符『 [ ] 』,是搜不到的~
  2. 果然是 theme 的问题,换成黑色主题就好了:)

#4 楼 @wwwicbd [] 也是方法,但语言自身的用法看语法书就好

需要 登录 后方可回复, 如果你还没有账号请 注册新账号