Пожалуй следующая жизненно важная тема - это переменные. К этой теме мы будем еще не раз обращаться.
После чего мы сможем пользоваться переменной? После обновления. Как это сделать? Синтаксис такой:ImyaTipa peremennaya;
Вы видите точку с запятой? Не забывайте про нее. Предположим нам нужна переменная Int типа intint Int;
Как видим Vala различает переменные не только по написанию, но и по регистру.
Как что-то сохранить в переменной?ImyaTipa = Znachenie;
Значением может быть любое значение того же типа. Но если типы разные, и преобразовать из одного типа в другой нельзя, тогда будет выброшено исключение, и программа завершит работу. Попозже мы поговорим о других типах. А пока знакомимся с новым типом - целочисленная переменная - int
. В ней могут хранится разные целые числа. Дробная часть отбрасывается. Правда слишком большие числа в него не влезут, но позже мы узнаем как это решить. Второй тип - числа с плавающей точкой double
Из одного в другой эти числа преобразуются без проблем, но при присвоении числу типа int дробного значения дробная часть "теряется". Если вам кажется что числа типа int непрактичны, то вы удивитесь узнав что у них "другое назначение", не такое как у double. Например они нужны в счетчиках.
И в заключение: в строке может содержаться число, но умножать или складывать строки как числа нельзя. Вот мы извлекаем из строки число, превращаем число в строку. Если преобразовать нельзя(например в числе буква или это не число, а слово) то тогда переменная приравнивается к нулю.
bool b = bool.parse("false");
int i = int.parse("-52");
double d = double.parse("6.67428E-11");
string s1 = true.to_string();
string s2 = 21.to_string();
Правда я еще ничего не сказал про тип bool, но думаю это тема следующего урока.
А теперь вернемся к математике. Вот делим, умножаем, складываем, вычитаем
double a, b; // Можно объявлять и так, чтоб не писать кучу раз тип
a = 5;
b = 2;
stdout.printf((a/b).to_string() + "\n");
//Вручную переводим в строку, а то компьютер не догадается
//+ "\n"добавляем к строке символ переноса каретки, чтоб было красиво
stdout.printf((a*b).to_string() + "\n");
stdout.printf((a+b).to_string() + "\n");
stdout.printf((a-b).to_string() + "\n");
Можно и сохранить в какой то переменнойdouble c = a + b;
Помните тип int не предназначен для математических расчетов, его цель другая. Если делить два числа типа int мы теряем дробную часть. Чтоб этого не произошло надо преобразовать int в double.int a = 5, b = 2;
double c = (double)a/c //c = 2.5
//(тип)переменная нужно для преобразования переменная в тип