Часто нам нужно поменять тип данных. Например, мы вводим в консоль число, но Оберон думает, что это текст. Или нам нужно превратить дробное число в целое. В таких ситуациях нам нужно знать об инструментах преобразования типов.
Оберон — язык с статической типизацией. Это значит, что переменная типа INTEGER всегда останется таковой. Строки из неё не получится. Значит нам надо взять её значение, изменить его тип, а потом засунуть в другую, заранее созданную переменную.
В примере ниже, мы превратим текст «777» в число «777».
Изначально текст жил в переменной x_array. Мы заранее создали переменную для целых чисел y_int (ведь 777 — целое число). Потом мы применили процедуру StringToInt из модуля Strings.
Обратите внимание, StringToInt использует ещё одну переменную — result. Создатели модуля Strings захотели иметь «индикатор», удалось ли преобразование или нет. Если всё прошло удачно — result=0. А если случилась ошибка — result=2. Отчего бывают ошибки? Например, «777» легко превратить в число. А вот «cats» превратить в число не получится.
MODULE Study;
IMPORT Out,Strings;
VAR
x_array:ARRAY 8 OF CHAR;
x_char:CHAR;
y_int:INTEGER;
result:INTEGER;
BEGIN
x_array:='777';
y_int:=0;
Strings.StringToInt(x_array,y_int,result);
Out.Int(y_int,1);
Out.Int(result,1);
END Study.
Конечно, здесь рассмотрен только один пример. Если вы желаете ознакомится с Strings подробнее — выделите слово Strings прямо в коде, щелкните на ней правой кнопкой. Выберите «документацию», «исходники» или «интерфейс».