可以将其重构为布尔值吗? board
是一个数组,move
是and索引。如果position_taken?(board, move)
是false
,board[move]
或" "
,""
应该返回nil
,如果true
是board[move]
,则返回"X"
"O"
或def position_taken?(board, move)
if board[move] == " "
false
elsif board[move] == ""
false
elsif board[move] == nil
false
else
true
end
end
。
---
- hosts: newcass
become: yes
become_user: root
become_method: sudo
gather_facts: True
serial: 1
tasks:
- name: Execute CQLSH
# shell: 'cqlsh -f /home/ubuntu/abc.cql'
shell: 'cqlsh -f abc.cql'
# command: "export CQLSH_NO_BUNDLED=true && cqlsh -f /home/ubuntu/abc.cql"
# command: "cqlsh -f abc.cql"
args:
chdir: /home/ubuntu/
register: cqlsh_result
- debug:
msg: "{{ cqlsh_result }}"
答案 0 :(得分:7)
由于您的积极案例较少且较为简单,因此我会进行相反的测试:
def position_taken?(board, move)
%w[X O].include?(board[move])
end
它将处理无效值的方式与原始方法不同,但是它直接执行方法名称的建议:检查位置是否已接受(而不是检查位置是否未接受)。
答案 1 :(得分:3)
您可以使用none?
并传递board[move]
进行比较:
[' ', '', nil].none?(nil) # false
[' ', '', nil].none?('') # false
[' ', '', nil].none?(' ') # false
[' ', '', nil].none?('t') # true
答案 2 :(得分:2)
在不知道将作为董事会参数传递什么的情况下很难知道您的方法在做什么,所以我能演示的最好的只是一个字符串:
str=''
!!(str && !str.strip.empty?)
#=> false
str='a'
!!(str && !str.strip.empty?)
#=> true
str=' '
!!(str && !str.strip.empty?)
#=> false
str=' '
!!(str && !str.strip.empty?)
#=> false
str=nil
!!(str && !str.strip.empty?)
#=> false
答案 3 :(得分:2)
我认为这在逻辑上是等效的:
def position_taken?(board, move)
!(board[move] == " " || board[move] == "" || board[move] == nil)
end
如果任何一个条件为true,则将其取反并返回false。如果所有条件都为假,则它将转换为真。
您还可以将要匹配的字符串放入数组中,并使用类似!include?
的名称,或者,如果您使用的是ActiveSupport
,则可以使用exclude?
。
def position_taken?(board, move)
["", " ", nil].exclude?(board[move])
end
答案 4 :(得分:1)
FWIW,此代码应重构为:
{% load nav %}
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<ul class="navbar-nav mr-auto">
{% nav_item 'dashboard' %}
</ul>
答案 5 :(得分:1)
如果只允许使用X或O,为什么不以这样的条件指定它们:
boared[idx] == 'X' || board[idx] == 'O'
我认为它在可读性和简单性方面要好得多。
答案 6 :(得分:-1)
def position_taken?(board, move)
!case board[move]; when " ", "", nil; true end
end
答案 7 :(得分:-1)
找到了解决方案。可以重构为:
v-on="listeners"