Я создаю калькулятор.
При нажатии, к примеру +, переменной operation присваивается значение ‘+’. operation :string;
Дак вот:
case operation[1] of
'+': a := a + real.Parse(databox.Text);
'-': a := a - real.Parse(databox.Text);
'*': a := a * real.Parse(databox.Text);
'/': a := a / real.Parse(databox.Text);
end;
Почему, если после operation убрать [1], выводит ошибку
“Нельзя преобразовать тип char к string”
А если [1] оставить(Как в коде), то все работает нормально.
Что дает эта [1] и как это вообще работает?
Проблема в том, что у Вас в case использована переменная типа string, а в качестве меток выступают константы типа char.
[1] выделяет из строки первый символ и проблемы нет.