zirconia una saber real oro limon laminado forma falso diamante cómo cuándo con como casera cadena anillo 14k ruby arrays

ruby - una - cómo saber si un diamante es real o falso



En Ruby, ¿cómo puedo saber si una cadena no está en una matriz? (4)

En Ruby, ¿cómo devolvería verdadero si una cadena no está en una variedad de opciones?

# pseudo code do_this if current_subdomain not_in ["www", "blog", "foo", "bar"]

... o sabes de una mejor manera de escribir esto?


¿Puedes intentar exclude? método en lugar de include?

Ejemplo:

do_this if ["www", "blog", "foo", "bar"].exclude?(current_subdomain)

Espero que esta ayuda ... Gracias


Además de usar una matriz, también puedes hacer esto:

case current_subdomain when ''www'', ''blog'', ''foo'', ''bar''; do that else do this end

Esto es en realidad mucho más rápido:

require ''benchmark'' n = 1000000 def answer1 current_subdomain case current_subdomain when ''www'', ''blog'', ''foo'', ''bar'' else nil end end def answer2 current_subdomain nil unless ["www", "blog", "foo", "bar"].include?(current_subdomain) end Benchmark.bmbm do |b| b.report(''answer1''){n.times{answer1(''bar'')}} b.report(''answer2''){n.times{answer2(''bar'')}} end Rehearsal ------------------------------------------- answer1 0.290000 0.000000 0.290000 ( 0.286367) answer2 1.170000 0.000000 1.170000 ( 1.175492) ---------------------------------- total: 1.460000sec user system total real answer1 0.290000 0.000000 0.290000 ( 0.282610) answer2 1.180000 0.000000 1.180000 ( 1.186130) Benchmark.bmbm do |b| b.report(''answer1''){n.times{answer1(''hello'')}} b.report(''answer2''){n.times{answer2(''hello'')}} end Rehearsal ------------------------------------------- answer1 0.250000 0.000000 0.250000 ( 0.252618) answer2 1.100000 0.000000 1.100000 ( 1.091571) ---------------------------------- total: 1.350000sec user system total real answer1 0.250000 0.000000 0.250000 ( 0.251833) answer2 1.090000 0.000000 1.090000 ( 1.090418)


do this if not ["www", "blog", "foo", "bar"].include?(current_subdomain)

o puedes usar grep

>> d=["www", "blog", "foo", "bar"] >> d.grep(/^foo$/) => ["foo"] >> d.grep(/abc/) => []


do_this unless ["www", "blog", "foo", "bar"].include?(current_subdomain)

o

do_this if not ["www", "blog", "foo", "bar"].include?(current_subdomain)

Estoy usando el Array#include? método.

Sin embargo, el uso a unless sea ​​un idioma bastante grande rubí.