2014-08-01 3 views
0

Я изучаю «семь языков за семь недель».Io Язык: Исключение: Последовательность не отвечает «openForReading»

На Io charpter, я запускаю следующий пример, не удалось со следующим исключением.

#phonebook.io 
OperatorTable addAssignOperator(":", "atPutNumber") 
curlyBrackets := method(
    r := Map clone 
    call message arguments foreach(arg, 
     r doMessage(arg) 
     ) 
    r 
) 

Map atPutNumber := method(
    self atPut(
     call evalArgAt(0) asMutable removePrefix("\"") removeSuffix("\""), 
     call evalArgAt(1)) 
) 

s := File with("phonebook.txt" openForReading contents) 

phoneNumbers := doString(s) 
phoneNumbers keys println 
phoneNumbers values println 

phonebook.txt

{ 
     "Bob Smith" : "12345", 
     "Mary Walsh" : "5678" 
} 

Сообщение об исключении:

Исключение: Последовательность не реагирует на 'openForReading' ---------
Последовательность openForReading телефонной книги .io 16 Файл с
phonebook.io 16 CLI doFile Z_CLI.io 140
CLI run IoState_runCLI() 1

phonebook.io и phonebook.txt в той же папке.

ответ

1

Сравните код построчно, следуя линии

s := File with("phonebook.txt" openForReading contents) 

следует исправить, как:

s := File with("phonebook.txt") openForReading contents 

В последних работах, как и ожидалось:

$> ю phonebook.io
список (Мэри Уолш, Боб Смит)
(5678, 12345)