Цитата:
Сообщение от
belugin
Для меня семантики в языке программирования нет только у текста комментария.
)))))
ну, как же? а макросы?
макросы не имеют семантики, но имеют синтаксис.
var/val в Котлине не имеет семантики, а просто заставляет компилятор сделать некие действия за программиста (некие суперинтеллектуальные макросы, которые позволяют объявить методы - геттеры и сеттеры).
var/val в Котлине ничего не значат, если эти некие действия программист уже сделал вручную.
Поэтому в Котлине семантику имеют только методы. Или отсутствие методов. Так работают соглашения.
про семантику:
почитай, например, про const у Страустрапа. Еще со второго издания const имеет семантику в C++.
Особенно меняется смысл у функций с const-аргументами и const-результатами.
Код:
const char* pc = "asdf"; // указатель на константу
pc[3] = 'a'; // ошибка
pc = "ghjk"; // нормально
char *const cp = "asdf"; // указатель-константа
cp[3] = 'a'; // нормально
cp = "ghjk"; // ошибка
const char *const cpc = "asdf"; // указатель-константа на const
cpc[3] = 'a'; // ошибка
cpc = "ghjk"; // ошибка
pc = cp; // ошибка?
cp = pc; // ошибка?
cpc = pc; // ошибка?
pc = cpc; // ошибка?
cpc = cp; // ошибка?
cp = cpc; // ошибка?
// 4 разные сигнатуры!
char* strcpy(char* p, const char* q); // не может изменять *q
const char* strcpy(char* p, const char* q); // не может изменять *q, возвращает указатель на константу
char*const strcpy(char* p, const char* q); // не может изменять *q, возвращает указатель-константу
const char*const strcpy(char* p, const char* q); // не может изменять *q, возвращает указатель-константу на const
кстати, const в ax7 похоже не имеет семантики, а только синтаксис )
mfp: X++ in AX7: Const keyword
надо будет проверить конструкцию
X++:
const List myList1;
const List myList2 = new List();
если не компилируется первая строчка, значит const имеет только синтаксис. Как и var/val. Только сильно попроще.