设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1510|回复: 6
打印 上一主题 下一主题

Game_Actor中有一段这样的代码

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
142 小时
注册时间
2008-7-25
帖子
259
跳转到指定楼层
1
发表于 2009-2-7 05:34:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
Game_Actor中有一段这样的代码:
  #--------------------------------------------------------------------------
  # ● 获取基本攻击力
  #--------------------------------------------------------------------------
  def base_atk
    n = actor.parameters[2, @level]
    for item in equips.compact do n += item.atk end
    return n
  end

其中equips.compact的equips和compact分别代表什么?
(compact是什么方法?它在脚本的哪部分?)


这句:for item in equips.compact do n += item.atk end
可以理解成如下吗?
for item in equips.compact
n += item.atk
end


谢谢!{/hx}
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-5-31
帖子
237
2
发表于 2009-2-7 19:48:41 | 只看该作者
compact 在帮助文件【标准函数库】【内建类】【object】【array】里面
就是跳过 nil的部分,因为为nil就是没有嘛。。
不跳过会出错
so 看看帮助文件就行
下面那理解应该是对的吧。。。个人认为
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
我。。不是寂寞。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
142 小时
注册时间
2008-7-25
帖子
259
3
 楼主| 发表于 2009-2-8 01:20:08 | 只看该作者
以下引用njx937于2009-2-7 11:48:41的发言:
compact 在帮助文件【标准函数库】【内建类】【object】【array】里面
就是跳过 nil的部分,因为为nil就是没有嘛。。
不跳过会出错

还有一个compact!,和compact有一点混淆,能在详细说一下吗?
谢谢!{/hx}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-5-31
帖子
237
4
发表于 2009-2-8 07:03:27 | 只看该作者
以下引用NaturalBlue于2009-2-7 17:20:08的发言:


以下引用njx937于2009-2-7 11:48:41的发言:
compact 在帮助文件【标准函数库】【内建类】【object】【array】里面
就是跳过 nil的部分,因为为nil就是没有嘛。。
不跳过会出错


还有一个compact!,和compact有一点混淆,能在详细说一下吗?
谢谢!

compact!照帮助文件就是处理数组,把nil都删去,生成新的,数组变了
XXX.compact 就是使用数组的非nil部分,原数组不变
我。。不是寂寞。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
142 小时
注册时间
2008-7-25
帖子
259
5
 楼主| 发表于 2009-2-8 07:07:55 | 只看该作者
以下引用njx937于2009-2-7 23:03:27的发言:

compact!照帮助文件就是处理数组,把nil都删去,生成新的,数组变了
XXX.compact 就是使用数组的非nil部分,原数组不变



ary = [1, nil, 2, nil, 3, nil]
p ary.compact         # => [1, 2, 3]
p ary                 # => [1, nil, 2, nil, 3, nil]
ary.compact!
p ary     # => [1, 2, 3]
p ary.compact!        # => nil

最后一行,ary.compact!为什么为nil?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-5-31
帖子
237
6
发表于 2009-2-8 07:17:26 | 只看该作者
最后一行,ary.compact!为什么为nil?
  1. /*
  2. *  call-seq:
  3. *     array.compact!    ->   array  or  nil
  4. *
  5. *  Removes +nil+ elements from array.
  6. *  Returns +nil+ if no changes were made.
  7. *
  8. *     [ "a", nil, "b", nil, "c" ].compact! #=> [ "a", "b", "c" ]
  9. *     [ "a", "b", "c" ].compact!           #=> nil
  10. */
复制代码

这是ruby的c语言版解说XXX.compact! 返回没nil数组,原本没nil就返回nil
我。。不是寂寞。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
142 小时
注册时间
2008-7-25
帖子
259
7
 楼主| 发表于 2009-2-8 07:34:42 | 只看该作者
非常感谢njx937的帮助!{/hx}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-10 21:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表