Project1

标题: 到底哪个量在加减? [打印本页]

作者: kvkv97    时间: 2021-8-29 15:15
标题: 到底哪个量在加减?
在 Game_Actor类的方法add_state中,有如下的程序段
      # 按比例大的排序 (值相等的情况下按照强度排序)
      @states.sort! do |a, b|
        state_a = $data_states[a]
        state_b = $data_states[b]
        if state_a.rating > state_b.rating
          -1
        elsif state_a.rating < state_b.rating
          +1
        elsif state_a.restriction > state_b.restriction
          -1
        elsif state_a.restriction < state_b.restriction
          +1
        else
          a <=> b
        end
      end
我想问的是:+1和-1到底是哪个量在加减?
作者: guoxiaomi    时间: 2021-8-29 16:40
没有哪个量在加减,这里的1或者-1是代码块的返回值。

sort!结束一个代码块,表示该如何给@states里的对象进行比较,然后按照这个比较的方法从小到大排序。
这个代码块接受两个参数a和b,返回1表示a<b,返回0表示a==b,返回-1表示a>b。




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