3

私は7週間で7つの言語から次のサンプルを試しています:

Object ancestors := method(
    prototype := self proto
        if(prototype != Object,
            writeln("Slots of ", prototype type, "\n---------------")
            prototype slotNames foreach(slotName, writeln(slotName))
            writeln
            prototype ancestors))

残りの例(例)を含むファイルにコードを入れてanimals.io、コマンドラインから実行するとio animals.io、期待どおりに機能します。

ただし、メソッドを手動で入力して任意のオブジェクトに対して実行しようとすると、次のエラーが発生します。

Exception: Object does not respond to 'prototype'
---------
Object prototype                     Command Line 1
Object ancestors                     Command Line 1

インタラクティブインタプリタを介してこの複数行のメソッドを入力することは可能ですか?

4

2 に答える 2

2

REPLの行区切り文字としてセミコロンを使用します。

Object ancestors := method(
    prototype := self proto;
        if(prototype != Object,
            writeln("Slots of ", prototype type, "\n---------------");
            prototype slotNames foreach(slotName, writeln(slotName));
            writeln;
            prototype ancestors))
于 2013-06-30T06:30:17.373 に答える
1

Io REPLでは複数行のステートメントを入力できますが[1]、残念ながら、行を連結しているように見えます:(

Io> Object getSlot("ancestors")
==> method(
    prototype := self proto if(prototype != Object, writeln("Slots of ", prototype type, "\n---------------") prototype slotNames foreach(slotName, writeln(slotName)) writeln prototype ancestors)
)

[1]-おそらくOSにReadLineをインストールする必要があります

于 2012-10-23T09:45:19.010 に答える