30

» Корсары / Рекомендации

Запускать приложение.
Задача любой другой функции поддерживать работоспособность приложения. Так что любая функция выполняет ровно одну задачу по такой логике.
30

» Корсары / Рекомендации

Вместо названия переменной numberOfCharsIncludingWhitespaceAndPunctuation лучше оставить хороший комментарий, который прояснит ситуацию
Тогда почему для ref рекомендуется именовать переменную, а не использовать комментарии?

Код, который появляется более одного раза в программе, лучше переписать в виде функции.
int A = B + C; // Плохо!
int A = Sum(B,C); // Хорошо!

Функция должна выполнять одно (и только одно) задание.
Какое задание должна выполнять функция main?
30

» Корсары / Типы данных

добавляет неожиданную дробную часть
Почему неожиданную? А как же классика:
book A = 0.1 + 0.2 == 0.3
30

» Корсары / Заголовочные файлы

Это интерпретацией же называют?
Разница тонкая. Если он прям из букв исполняет, то интерпретация. Если предваритеьно превращает во внутреннее предстваление, то компиляция.
30

» Корсары / Заголовочные файлы

что никакого компилятора нет
Вообще никакого? Код прям из текстовых файлов исполняется без компиляции?
30

» Корсары / Типы данных

Альтернативного варианта записи строки не существует.
Тоесть так не сработает?
string A = """A""";
string AB = "A" "B";
30

» Корсары / Передача данных

avuremybe, ну как-бы это ссылка, но с типом. Как по нотации функции понять какой тип ожидается в a?
void NumChanger (ref a)
{
}
30

» Корсары / Функции

Поскольку в обеих случаях имеется в виду одно и то же, то употребление данного термина является занудством ради занудства.
30

» Корсары / Директивы

Я сильно в ихний "компайлер" не вникал, пока что. Только поверхностно смотрел.
Там скорее всего оргызок от плюсов. И построен он на старом добром "лексер, прасер, визитор". И если лексер не распознает идентификатор из таблицы define то магии не случится. По этой же причине, кстати, не работают комментарии внутри строковых литералов.
30

» Корсары / Массивы

avuremybe, кто их общепринял? Вон, SQL вообще на это ваше общепринятие ложил и почему-то никто на него ругается.
30

» Корсары / Условные операторы

Ну да. Нигде не написано, что default должен быть последним выражением.
30

» Корсары / Директивы

avuremybe, ну тогда вообще непонятно, почему define не сработает внутри строкового литерала.
30

» Корсары / Массивы

avuremybe, можно хоть один пример, где Lua на какие-то там принципы положил? И желательно с обоснованием.
30

» Корсары / Условные операторы

Что насчёт расположения default?
enum MyEnum {A, B, C}

int GetMyEnumValue(int myInt){
    switch(myInt){
        case MyEnum::A:
           return MyEnum::A;
        // Если myInt не является одним из значений MyEnum, используем MyEnum::B в качестве значения по умолчанию.
        default:
        case MyEnum::B:
           return MyEnum::B;
        case MyEnum::C:
           return MyEnum::C;
    }
}
30

» Корсары / Массивы

avuremybe, ты дал общее определение "в программировании". Lua напрямую к нему относится и в нём индексация начинается с единицы.
30

» Корсары / Директивы

Когда препроцессор встречает макросы-объекты с текст_замена
Почему препроцессор, если этим занимается лексер?
30

» Корсары / Массивы

В программировании отсчёт всегда начинается с 0, а не с 1.
Lua с тобой не согласится.
30

» Корсары / Условные операторы

И компиляции, в том виде, к которому ты привык, у нас нет, бтв.
Если процесс компиляции скрыт от разработчика, то это не значит что его нет.
30

» Корсары / Условные операторы

Кстати, код swittch разруливается на этапе компиляции и соответсвтвенно выполнится за O(1) вместо O(n) как в случае elseif.
30

» Корсары / Условные операторы

использование логических И и ИЛИ в одном выражении вызывает ошибку
Я надеюсь сложение и умножение разрешено в одном выражении?
30

» Корсары / Типы данных

avuremybe, в плюсах такое же поведение:
int main()
{
    
    int a = 0;
    std::cout<< (a == true) << (a == false) << (a ? 1 : 0) << "\n"; // 010
    
    int b = 1;
    std::cout<< (b == true) << (b == false) << (b ? 1 : 0) << "\n"; // 101
    
    int c = 2;
    std::cout<< (c == true) << (c == false) << (c ? 1 : 0) << "\n"; // 001
    
    int d = -2;
    std::cout<< (d == true) << (d == false) << (d ? 1 : 0) << "\n"; // 001

    return 0;
}