Ja können wir!
%Vor%Dies geschieht durch Erstellen von Instanzvariablen @ a0, @ a1 usw. auf dem Objekt, um die Array-Indizes 0, 1 usw. darzustellen. Es hat konstante Zeitlängen- und Indexoperationen. Der Rest der Operationen (Entfernen, etc.) ist ein bisschen mehr Aufwand zu implementieren, aber es ist absolut möglich.
Beachten Sie, dass die konstante Zeiteigenschaft für die Indexoperation von der zugrunde liegenden Ruby-Laufzeitumgebung abhängt, die eine geeignete Datenstruktur für Instanzvariablen verwendet.
Sie könnten eine verkettete Liste verwenden, die ineffizient, aber möglich wäre. Sie könnten auch einen Binärbaum verwenden (siehe obige Kommentare).
Ich denke, mein Punkt ist: Sie konnten kein vernünftiges Array ohne Sprachunterstützung der unteren Ebene bekommen. Die grundlegende Struktur, die ich im Ruby-Array nehme, ist ein C-Array (obwohl ich falsch liegen könnte). Bei solch einem fundamentalen Typ wird die Unterstützung auf niedrigerer Ebene für eine anständige Performance entscheidend sein.
Sicher kannst du. Ruby ist eine Turing-vollständige Sprache. Sie können alles implementieren, das Sie in beliebige Sprache in Ruby implementieren können.