Я пытаюсь прокомментировать весь код в моем задании. Однако, когда я пытаюсь скомпилировать (или что-то еще, я серьезно не знаю), есть попытка скомпилировать код внутри кавычек. В соответствии с используемой мной книгой («На Smalltalk» - Winston) Smalltalk игнорирует начальную двойную кавычку, все символы между этой двойной кавычкой и следующей двойной котировкой и, наконец, она также игнорирует следующий знак двойной кавычки. Почему это не работает здесь?Код в комментариях компилируется
Я попытался поместить весь код в один набор двойных кавычек, и результаты были хуже.
Я специально использую Smalltalk/X. Я просто хочу помочь с тем, что вызывает ошибку комментирования.
Ошибки, которые я получаю, когда код компилируется являются:
===> Parser [ошибка]: необъявленная переменная: Удаляет при компиляции/оценки для UndefinedObject при чтении C: \ Users \ Обескураженный \ Desktop \ blank.st или вблизи линии 3 [относительно начала куска]
===> Parser [ошибка]: необъявленная переменная: поп при компиляции/оценки для UndefinedObject при чтении C: \ Users \ Disouraged \ Desktop \ blank.st на линии или рядом с ней 4 [относительно начала пуска]
===> "[" неожиданно. (отсутствующий «.», «:» или селектор перед этим?) при компиляции/оценке для UndefinedObject при чтении C: \ Users \ Disouraged \ Desktop \ blank.st на линии или рядом с ней 5 [относительно начала фрагмента]
===> неожиданный конец входного текста в строке при компиляции/оценки для> UndefinedObject при чтении C: \ Users \ Discouraged> \ Рабочий стол \ blank.st на или вблизи линии 1 [относительно начала отрезка ]
код:
"
Build a stack based (RPN - Reverse Polish Notation) calculator for rational
numbers
Smalltalk at: #maxStackSize put: 32
Object subclass: #Stack
instanceVariableNames: 'stackArray stackTop'
classVariableNames: ''
poolDictionaries: ''
!
Stack class comment: '
Redundant stack class
'
!
!Stack methodsFor: 'initialize'!
new
^super new.
!
init
stackArray := Array new: maxStackSize.
stackTop := -1.
! !
"
"
!Stack class methodsFor: 'manipulating the stack'!
"
"
Removes the top entry from the stack.
pop
[self empty
ifTrue: [
Transcript
cr;
show: 'Stack is EMPTY!';
cr.]
ifFalse: [stackTop := stackTop - 1].
]
!
"
Итак, вы не можете комментировать код, если код не компилируется правильно без комментариев? Например, в Java, если я набрал System.out.println («Я ненавижу Smalltalk»); это составлено и // System.out.println («Я ненавижу Smalltalk»); это обрабатывается как комментарий, а не скомпилировано Does Smalltalk не ведет себя таким образом? Также мы ограничены SmalltalkX [link] http://www.exept.de/en/products/smalltalk-x.html. –
Вы можете определенно прокомментировать что-нибудь, даже код, который не компилируется, просто убедитесь, что вы правильно закрыли комментарий. Поэтому, если вы комментируете что-то с двойными кавычками, помните, что дополнительные кавычки закрывают комментарий, поэтому повторно откройте его с помощью пары котировок. Это в основном то же самое, что и экранирование «как». Это ничем не отличается от открытий/закрытий комментариев на любом языке. Например, '/ * Yo, */это комментарий * /' недействителен в Java. Но так как Smalltalk лучше всего разрабатывать как индивидуальные методы внутри окон браузера, никогда не нужно комментировать большие куски кода. –
«так что вы НЕ МОЖЕТЕ». - пожалуйста, прочитайте мой ответ. – blabla999