С возрастом динозавров, Turbo Pascal и в наши дни Delphi имеют процедуру Write() и WriteLn(), которая спокойно делает некоторые аккуратные вещи.
-
Число параметров является переменной;
-
Каждая переменная может быть всех видов; вы можете поставлять целые числа, парные разряды, строки, логические значения и смешивать их все в любом порядке;
-
Вы можете предоставить дополнительные параметры для каждого аргумента:
Write ( 'Hello': 10, 'World!': 7);//параметры выравнивания
- Он даже проявляется особым образом в drowdown завершения кода:
- Write ([var F: File]; P1; [..., PN])
- WriteLn ([var F: File]; [P1; [..., PN]])
Теперь, когда я печатал это, я заметил, что Write и WriteLn не имеют одинаковых скобок в раскрывающемся списке завершения кода. Поэтому похоже, что это не было автоматически сгенерировано, но оно было жестко закодировано кем-то.
Во всяком случае, могу ли я написать такие процедуры, как это, или все это из-за какого-то волшебного жестко закодированного трюка компилятора?