Почему компилятор ожидает ")", куда я положил "," в моем объявлении функции?
В моем курсе вычислений на уровне AS мы используем Turbo Pascal, и для расширения я получил задание создать карточную игру в стиле блэкджек /21. Я решил сделать блок для общих структур данных карточных игр:
unit CardLib;
interface
type
CardSuite = (clubs, diamonds, hearts, spades);
Card = record
name:String;
value:Integer;
suite:CardSuite;
end;
CardDeck = object
cards: Array[0..51] of Card;
freeIndex: Integer;
constructor init;
procedure addNewCard(suite:CardSuite, name:String, value:Integer);
procedure addCard(c:Card);
function drawCard:Card;
destructor done;
end;
CardHand = object
cards: Array[0..51] of Card;
freeIndex: Integer;
constructor init(deck:CardDeck, size:Integer);
function getLowestTotal:Integer; {Aces are worth 1}
function getHighestTotal:Integer; {Aces are worth 11}
procedure addCard(c:Card);
destructor done;
end;
...
Я компилирую этот код с помощью Free Pascal в режиме совместимости с Turbo Pascal, но получаю следующую ошибку:
CardLib.pas(18,39) Fatal: Syntax error, ")" expected but "," found
Fatal: Compilation aborted
Error: /usr/bin/ppcarm returned an error exitcode (normal if you did not specify a source file to be compiled)
Если я закомментирую процедуру addNewCard, я получу ту же ошибку в конструкторе CardHand. Есть идеи, что вызывает это?
1 ответ
Решение
Используйте точки с запятой для разделения параметров.
procedure addNewCard(suite:CardSuite; name:String; value:Integer);