Project1

标题: [已解决]关于非!的一段代码用法疑问? [打印本页]

作者: miantouchi    时间: 2019-6-29 22:26
标题: [已解决]关于非!的一段代码用法疑问?
本帖最后由 miantouchi 于 2019-6-30 06:22 编辑

  这是一段跳跃代码,但是核心问题不是跳跃的实现,而是我对非!用法感到疑惑.

#--------------------------------------------------------------------------
  # ● 更新跳跃
  #--------------------------------------------------------------------------
  def update_jump
    return if !jumping?
   
    # 更新真实坐标
    @real_x += @v.x
    @real_y -= @v.y
    #以下省略
  end


  #--------------------------------------------------------------------------
  # ● 是否跳跃
  #--------------------------------------------------------------------------
  def jumping?
    !@jump_state.nil?
  end
我的想法如下:
如果@jump_state状态值是nil则返回true,然后非一下就是返回false,也就跳跃状态为nil就返回false吗,不是nil就返回true

def jumping?
    @jump_state.nil?
  end

  def update_jump
    return if    jumping?
  end
这么写不也行吗?,不加 ! ,这么写有什么好处吗?

作者: devil033    时间: 2019-6-29 23:13
个人感觉你的写法也是可以的,就是逻辑比较奇怪。

jumping?翻译成中文就是 跳?
返回值true(是)就代表跳,返回值false(否)就代表不跳。

但你的逻辑就比较奇怪了
返回值true(是)就代表不跳,返回值false(否)就代表跳。

就好比问你 “你吃饭了吗”
你回复“吃了”,表示你没吃
你回复“没吃”,表示你吃了





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