Algorithmus in Ruby für "String # include?"

8

Kann jemand genau bestimmen, welcher Algorithmus für das Include verwendet wird? Methode in Ruby? Zum Beispiel

%Vor%     
John Rich 17.10.2011, 14:23
quelle

3 Antworten

10

Wie emboss in seiner Antwort angibt, ruft String#include rb_str_index auf. Diese Funktion wiederum ruft rb_memsearch auf, die den Rabin-Karp-String-Suchalgorithmus entsprechend implementiert diesen Beitrag zu ruby-forum.com .

    
rdvdijk 17.10.2011, 15:30
quelle
6

Die Ruby Language Specification schreibt keinen bestimmten Algorithmus vor. Jede Implementierung kann den von ihnen gewünschten Algorithmus verwenden.

Zum Beispiel in Rubinius , String#include? ruft String#find_string :

auf %Vor%

String#find_string wird wiederum über die string_index primitiv:

%Vor%

Das string_index Primitiv wird vom rubinius::String::index function:

%Vor%

rubinius::String::index :

%Vor%     
Jörg W Mittag 17.10.2011 16:39
quelle
5

Dies ist die tatsächliche Implementierung von String#include? :

%Vor%

So kann der tatsächlich verwendete Algorithmus in rb_str_index gefunden werden.

    
emboss 17.10.2011 14:54
quelle

Tags und Links