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

Project1

 找回密码
 注册会员
搜索
查看: 2182|回复: 6

[已经解决] 请教!self.state?(1)&&!self.state?(2)&&!self.state?(3)数组的写法

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
发表于 2020-1-10 00:17:27 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 taeckle 于 2020-1-10 00:21 编辑

"if user.state?(1) or user.state?(2) or user.state?(3) or user.state?(4)"    还可以这么写:      "if [1,2,3,4].any?{|i| user.state?(i)}"


那要是"if !self.state?(1) && !self.state?(2) && !self.state?(3)" 用个数组[1,2,3]该怎么写呢?

Lv4.逐梦者

梦石
0
星屑
13559
在线时间
2753 小时
注册时间
2014-10-4
帖子
756

R考场第七期纪念奖

发表于 2020-1-10 01:19:19 | 显示全部楼层
本帖最后由 SixRC 于 2020-1-10 16:18 编辑

1.可以用 all? 这个方法啊 和 any? 相通
2.这两个语义相反 所以 not any = all not
   然后 你把上面的结果取反也可以吧


1. all not
RUBY 代码复制
  1. [1,2,3].all? {|i| !self.state(i) }

2. not any
RUBY 代码复制
  1. ! [1,2,3].any? {|i| self.state(i) }

评分

参与人数 2星屑 +50 +2 收起 理由
RyanBern + 50 + 1 认可答案
taeckle + 1 多谢指点!

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
 楼主| 发表于 2020-1-10 09:20:26 | 显示全部楼层
SixRC 发表于 2020-1-10 01:19
1.可以用 all? 这个方法啊 和 any? 相通
2.这两个语义相反 所以 not any = all not
   然后 你把上面的结果 ...

那要怎么写呢。。有点晕啊。。

点评

已更新  发表于 2020-1-10 16:18
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

发表于 2020-1-10 10:06:59 | 显示全部楼层
本帖最后由 KB.Driver 于 2020-1-10 10:08 编辑

RUBY 代码复制
  1. if !self.state?(1) && !self.state?(2) && !self.state?(3)

等价于
RUBY 代码复制
  1. if [1, 2, 3].all?{|i| !self.state?(i) }




或者这样写
RUBY 代码复制
  1. if !self.states.any?{|s| [1, 2, 3].inlcude?(s) }

评分

参与人数 2星屑 +50 +2 收起 理由
RyanBern + 50 + 1 认可答案
taeckle + 1 大神威武,浪荡乾坤!

查看全部评分

用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14038
在线时间
2069 小时
注册时间
2016-9-20
帖子
844
发表于 2020-1-11 15:28:07 | 显示全部楼层
本帖最后由 ppspssss 于 2020-1-11 15:31 编辑

如果使用for循環, 用邏輯來造的雖然比較長,但應該可以詳細一点,方便修改及日后維護(对于我來說), 如果上方的方法雖然速度快 , 但还是不建議新手用

  1. a = [1,2,3]
  2. 包含 = 0 #建一个局部變量,用于計數
  3. for i in 0..a.size
  4. n = a[i] #建个局部變量等于a數組中第i个的變量
  5. if self.state?(n) #如果包含这个變量(狀態值)
  6. 包含+=1 #如果包含了的話,計數加一個
  7. end #if結束
  8. end #for結束
  9. if 包含 >0
  10. #其中一种的情況
  11. end
  12. if 包含 == a.size
  13. #其中全部种的情況
  14. end
复制代码
内容仅供参考,
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37641
在线时间
5308 小时
注册时间
2006-11-10
帖子
6541
发表于 2020-1-11 16:24:53 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2020-1-11 16:34 编辑

if (self.states & [1,2,3,4]).size == 3

F1搜索关键词: 交集

评分

参与人数 1+1 收起 理由
taeckle + 1 多谢大神!

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 18:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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