Wie umgehen String-Literale in Ruby new / initialize, und gibt es eine Möglichkeit dies zu instrumentieren?

8

Ich habe heute Nachmittag mit einer Idee gespielt und bin auf etwas gestoßen, das ich nicht ganz verstehe. Im Grunde versuche ich in diesem Experiment irgendwie zu wissen, wann immer ein String erzeugt wird (für den späteren Gebrauch, wie in irgendeiner Art von DSL). Das Folgende funktioniert für jeden String, der über String.new erstellt wird:

%Vor%

z.B.

%Vor%

Was ich nicht herausfinden kann ist, wie ein String-Objekt erstellt wird, wenn Sie ein Literal verwenden. Zum Beispiel, warum passiert dies nicht die gleiche Initialisierung und Einrichtung:

%Vor%

Ich stelle fest, dass der Compiler etwas anderes tut, wenn eine Zeichenfolge literal ist, aber muss sie nicht initialisiert werden, um einfach ein voll funktionsfähiges Objekt zu sein? Gibt es Tricks, mit denen ich feststellen könnte, wann eine Zeichenkette mit einem Literal erstellt wurde, oder ist das unmöglich?

Danke!

    
Mason Cloud 29.10.2012, 19:45
quelle

1 Antwort

1

Ich denke, dass aus der Diskussion folgt, dass kaum jemand hier eine echte Antwort geben wird, es sei denn, Chris Heald wacht auf und sieht sich tatsächlich den Quellcode an, wie er es versprochen hat. Aber wenn, wie Sie in Ihrem Kommentar zu Ihrer Frage sagen, der Zweck darin besteht, "die Grenzen dessen zu testen, was die Sprache tun kann, um Spaß zu haben und etwas Neues zu lernen", dann möchte ich Ihnen - so sehr ich SlideShare hasse - vorstellen diese Ruby-Präsentation des berühmten esoterischen Programmierers Yusuke Endoh .

    
Boris Stitnicky 30.10.2012 18:25
quelle

Tags und Links