Почему этот простой метод класса не работает - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь понять smalltalk и пытаюсь выполнить следующий простой код с помощью gnu-smalltalk:

Object subclass: Myclass[
    myMethod: val [val printNl]
]

mc := Myclass new.
mc myMethod: "55".

Однако он не работает и выдает следующую ошибку:

$gst simpleclass.st 
simpleclass.st:6: expected object

Я думал"55" это объект в smalltalk.

Очевидно, что я упускаю что-то очень простое, но я не могу понять это.Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 01 мая 2019

Причина, по которой

mc := Myclass new.
mc myMethod: "55".

не работает просто: в Smalltalk строки с двойными кавычками являются комментариями. Следовательно, для компилятора ваше выражение эквивалентно:

mc myMethod:

как будто не было никаких аргументов вообще. Предполагаемое выражение должно было быть

mc myMethod: 55 "and now this should work!"
...