Ruby Language = ~ operatore


Esempio

if /hay/ =~ 'haystack'
  puts "There is hay in the word haystack"
end

Nota: l'ordine è significativo . Anche se 'haystack' =~ /hay/ è nella maggior parte dei casi equivalente, gli effetti collaterali possono essere diversi:

  • Le stringhe catturate dai gruppi di cattura con nome vengono assegnate alle variabili locali solo quando viene chiamato Regexp#=~ ( regexp =~ str );
  • Poiché l'operando corretto potrebbe essere un oggetto arbitrario, per regexp =~ str verrà chiamato Regexp#=~ o String#=~ .

Si noti che questo non restituisce un valore vero / falso, invece restituisce l'indice della corrispondenza se trovato, o zero se non trovato. Perché tutti gli interi in ruby ​​sono veri (compreso 0) e nil è falsi, questo funziona. Se si desidera un valore booleano, utilizzare #=== come mostrato in un altro esempio .