Форум программистов, компьютерный форум, киберфорум
Теория программирования
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14

Какие из этих возможностей вам хотелось бы видеть в языке?

15.03.2020, 17:27. Показов 3251. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сейчас мое увлечение программированием находится в кризисе. Поток идей всегда накрывал меня с головой, но сейчас он исчерпал себя. На программы для сжатия нечего и надеяться, свой алгоритм асимметричного шифрования я, вероятно, никогда не смогу создать, операционную систему лучше даже и не начинать делать (даже если допустить, что ядро, написанное на ассемблере, я где-то найду готовое, что маловероятно), для игр нужна хорошая графика, а мне ее взять негде, поэтому остается только язык. (Если это не так, прошу написать, какие еще есть варианты с учетом того, что учебник я уже (почти) прочитал.) Так что если я узнаю, какие есть актуальные запросы к языкам программирования, у меня появится возможность продолжать активную жизнь.
По этим пунктам я уже получил ответ, они точно не нужны в языках программирования:
1. Станционное программирование.
2. Сокращение кода в ущерб удобству написания.
3. "Статические" массивы.
4. Многомерный список как оператор языка.

А по этим - еще не получил:
1. Одновременное наличие типов значений, прямых ссылок (ref T) и управляемых ссылок (des T). Сразу напишу, что типы значений и объектно-ориентированное или "процедурное" программирование никак не связаны.
2. Выполнение фрагментов кода, полученных снаружи относительно "основного" кода (например, из текстового поля), с помощью оператора $string (этот оператор есть на клавиатуре!).
3. Рекурсивный тип, как в примере:
Code
1
2
typename T = TextBox1.Text;
T a;
4. Полноценный тип var, который автоматически заменяется на тип первого присвоенного значения. Можно даже написать:
Code
1
var a = null; //a имеет тип null
5. Создание переменной в любом выражении:
Code
1
string s = "Число " + (real r = (int n = 5) + 0.25);
А также создание "моментальных" переменных:
Code
1
2
3
var n = 11;
TextBox1.Text = 2 pow 5=:n * n; //160
TextBox2.Text = 2 pow n * n; //Тут n из предыдущей строки уже нет, поэтому 22528
Оператор "=:" - это "инверсированный" оператор из некоторых языков программирования ":=". И он есть на клавиатуре!
Мне кажется, эта возможность не помешала бы достаточно часто.
6. Автоматическое отслеживание, удовлетворяет ли переменная заданным условиям, например:
Code
1
2
3
4
5
6
7
[[1, 100]] n = 18;
n = 1000000; //Ошибка!
[[0r, 1r ex]] r; //Если я еще не писал об этом, напишу - суффикс r заставляет компилятор принудительно интерпретировать число как действительное. Ну, а ex обозначает "не включая". Для типа int его установить нельзя!
r = 3.14; //Ошибка!
r = 1; //Ошибка!
[["?*"]] s; //Шаблон для строки
s = ""; //Ошибка!
Указывать сам тип не нужно, так как он понятен из шаблона. Пока что надеюсь создать такое только для типов int, real и string. Возможно, придумаю, как сделать и в других типах.
Добавлю: в C# есть "валидация модели", глава о ней находится на почетном последнем месте, но там это просто атрибуты, а в моем языке (пока что название вакантно) - часть самого типа.
7. Возможность параметризации типов и методов не только типами, но и любыми другими значениями, в том числе и с проверкой попадания в диапазон (см. предыдущий пункт), например:
Code
1
2
template([[, 0]] D, typename T) Class List = T; //[[, 0]] эквивалентно [[int.MinValue, 0]]
template([[1,]] D, typename T) Class List = List[List[D - 1, T]]; //[[1,]] эквивалентно [[1, int.MaxValue]]
Добавлю к вышеизложенному: конструкция "Class List : T" является некорректной, так как тип T может быть запечатанным, и тогда List не сможет быть производным от него. А конструкция Class Class1 = Class2 - то, что надо в данном случае.
Таким способом, параметризующее значение будет, по сути, обычной переменной: обычная переменная может быть как рекурсивного, так и нерекурсивного типа, и параметризующее значение может быть как рекурсивного, так и нерекурсивного типа.
8. Операторы ?=, ?>, ?<, ?>=, ?<= и ?!=, эквивалентные x == y ? x : z, x > y ? x : z и т. д. Это уже много раз было упомянуто, но еще ни одного раза я не получил конкретную информацию - помогло бы это в языке или нет. Мне кажется, помогло бы.
9. Отказ от оператора goto с одновременным введением возможности выйти из вложенных циклов на уровень метки (как в Жабе):
Code
1
2
3
4
5
6
7
8
9
10
11
12
int n = -1;
l8: for (int i in Chain(1, 9))
{
    for (int j in Chain(1, 9))
    {
        if (i != j && list[i] == list[j])
        {
            n = list[i];
            break l8;
        }
    }
}
Также можно выйти и из вложенных функций, добавив к имени метки #:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
closed int Function F1(int p)
{
    l0#: int n = F2(p);
    return n;
}
 
closed int Function F2(int p)
{
    int n = F3(p);
    return n;
}
 
closed int Function F3(int p)
{
    int n = F4(p);
    return n;
}
 
closed int Function F4(int p)
{
    return to l0;
}
Поясню: если написать такую конструкцию, программа будет выходить из всех функций, пытаясь найти метку, отмеченную решеткой и возвращая во всех функциях null. Но следует быть осторожным: если нужной метки не окажется, в программе возможен крах!
Прошу не судить строго за "возврат к нашим баранам". Поймите, у меня, кроме программирования, других возможностей в жизни нет, поэтому делаю, что могу. Вместо того, чтобы судить, прошу написать по каждому пункту: какая возможность улучшит язык программирования, а какая ухудшит.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.03.2020, 17:27
Ответы с готовыми решениями:

какие из этих имен встречаются во всех классах данной параллели которые есть только в некоторых классах и какие из этих имен не встречаются ни в одном
Помогите написать программу: заданы имена девочек определить какие из этих имен встречаются во всех классах данной параллели которые есть...

Определить, какие из этих имен встречаются во всех классах, какие есть хотя бы в двух классах, и какие - только в одном классе
Для каждого из четырех классов указаны имена девочек, обучающихся в них. Определить, какие из этих имен встречаются во всех классах, какие...

Какая из этих картинок вам больше всего нравится ?
Сайт на тематику Кс 1.6

57
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
25.03.2020, 17:08
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
А как компилировать "сразу нормальные сборки"? В ассемблер?
Не в ассемблер, а в бинарный байт код net, если вы для этой платформы хотите язык создавать. Не знаете, так изучайте, в чем проблема?
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Я уже изучил 7 или 8. А еще несколько (Пайсен, Паскаль (Delphi) и т. д.), как полиглот, уже понимаю без изучения.
Видимо, также как и английский, как и все остальное, что вы "изучили".
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
у меня в жизни хватает дел и без чтения книг непонятно о чем. Учебник по конкретному языку я прочитал.
Ну то есть учиться вы не собираетесь, а собираетесь и дальше изобретать бесполезные велосипеды?
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
25.03.2020, 17:50
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Я уже изучил 7 или 8.
Нет смысла в изучении восьми одинаковых (по парадигме) языков.
Нужно, например, Лисп, Хаскель, Пролог, Оз, Го, Кей, Эрланг, Ио. И какой-нибудь язык с зависимыми типами данных.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Учебник по конкретному языку я прочитал.
Чтобы написать свой язык, нужно знать теорию языков. Точно также, если Вы хотите создать язык типа Эсперанто, недостаточно выучить пару языков (русский, английский) - нужно знать лингвистику.

Путь добавления новых фич в ЯП с помощью специального синтаксиса - тупиковый. Язык будет неограниченно усложняться. Это видно на примере С++ и С#. Уже месяца недостаточно, чтобы выучить синтаксис языка, в то время как синтаксис Лисп или Форт учится за 5 минут.
1
Эксперт .NET
 Аватар для Usaga
14813 / 9587 / 1368
Регистрация: 21.01.2016
Сообщений: 36,110
26.03.2020, 08:14
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
у меня в жизни хватает дел и без чтения книг непонятно о чем
Нет времени изучать дисциплину, нужно создавать никому не нужные велосипеды?

Чтобы создать (или хотя бы задумать) действительно практически полезный ЯП, нужно понимать недостатки существующих (популярных). А чтобы понимать недостатки существующих на них нужно хорошо так пописать, что-то большое и сложное. Желательно в команде.

Второй момент: надо различать сам язык и его базовую библиотеку классов. Вы это, похоже, не различаете и то, что можно было бы оформить как некую библиотечную возможность (может быть даже стороннюю) вы всё пихаете в синтаксис языка.

Etyuhibosecyu, я не буду вас отговаривать, ибо это бесполезно. И обсуждать тупость затеи вашей тоже. Вы никаких аргументов не понимаете. И ладно. Просто напомню: вы в пустую теряете время переизобретая кривые велосипеды. Лучше бы поучились кататься на нормальных.
1
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
26.03.2020, 16:38
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
4. Полноценный тип var, который автоматически заменяется на тип первого присвоенного значения.
Что порождает язык с которым программисту придется воевать.
var i = 1 ;
Как компилятор догадается, что я имел ввиду беззнаковое 1 ? А требуемую разрядность у 1 ?
Мне приходилось воевать с Visual Basic Script (выбора не было, именно он был встроен в некую другую программу и сценарии к ней пришлось писать на нем) в котором такая фишка есть. Заставить цикл крутить 0..BFFF была проблема. Он считал что &hBFFF это знаковое отрицательное 16 разрядов и цикл обрывал сразу. Приходилось косвенно воздействовать на его автоматическое назначение типа по принципу "ну догадайся-же, сволочь", ну а если я &hBFFF вот так запишу &h10000-&h4001 догадаешься 32 разряда включить или нет, едрит твою в качель ? Dim i As Long в той программе почему-то не работало, кричало что синтаксически не понимает что это.

Добавлено через 4 минуты
Вообще идея языка который будет угадывать мысли программиста хороша до тех пор пока он не начнет угадывать неверно.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
26.03.2020, 16:39
Цитата Сообщение от Ethereal Посмотреть сообщение
что я имел ввиду беззнаковое 1 ?
Легко. Префиксы у констант:
C#
1
var i = 1u;
Либо явное указание типа:
C#
1
2
uint8_t i = 1;
var i = (uint8_t)1;
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
26.03.2020, 16:41
Если ты явно указываешь при присвоении тип, то тогда сама идея автоматического назначения типа теряет смысл.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
26.03.2020, 16:47  [ТС]
Ethereal, так вся фишка в том, что автоматически давать переменной тип можно, а не обязательно. Если нужно явно указать тип, никто не мешает.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
26.03.2020, 16:47
Вроде, в расте компилятор вычисляет тип переменной. Если не может - ошибка компиляции.

Да и в с++11 появилось ключевое слово auto:
C++
1
2
std::map<std::string, std::vector<int>> map;
for(auto it = begin(map); it != end(map); ++it) {
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
26.03.2020, 16:55  [ТС]
Рыжий Лис, так дело в том, что в C++11 такому auto нужно присвоить значение сразу. А у меня переменная может очень долго быть типа "просто var". Пример:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
var a;
closed null Function Button1_Click()
{
    a = 5;
}
closed null Function Button2_Click()
{
    a = "Hello";
}
closed null Function Button3_Click()
{
    a = (1, 2, 3);
}
И переменная a будет без конкретного типа до той точки, пока вы не нажмете на одну из кнопок.
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
26.03.2020, 17:03
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Ethereal, так вся фишка в том, что автоматически давать переменной тип можно, а не обязательно.
Т.е. в язык вводятся умолчания. Если тип не указан, то он integer. Идеология Бейсика.
Сие категорически плохо для начинающих программистов, которые по инерции i понимают как математическую переменную "произвольное целое", а не прокрустово ложе ячейки памяти столько-то разрядов. Это минус.
А предполагаемый плюс только для ленивых программистов, которым лень описать переменную, ну так писать
тип i = 1 ;
сразу описывая и присваивая не напряжно, а тогда реальный, мощный плюс от усложнения языка умолчаниями ускользает. Не стоит в язык добавлять сущностей с эфемерной пользой.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
26.03.2020, 17:38  [ТС]
Ethereal, если речь идет об int, то да, и то 2 миллиардов для 99.9% целей "начинающих" программистов хватает. А если тип не int, а Dictionary[(Stack[Block], string), Dictionary[string, List[List[bool, List[string, List[string, List[string]]], Stack[Block], string], Stack[Block], List[string, List[string, List[string]]], FunctionAttributes, List[Stack[Block], string, List[string, List[string, List[string]]], ParameterAttributes, string]]]]? И то, этот тип один раз уже будет написан в виде new ...(), зачем его писать еще раз?

Добавлено через 18 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
Нет смысла в изучении восьми одинаковых (по парадигме) языков.
Нужно, например, Лисп, ...
Почитал примеры на Lisp - действительно очень необычный язык. Префиксная запись может поставить не очень зрелый мозг в тупик. Язык явно не для детей. Haskell - тоже когда-то видел примеры, тоже очень необычный. Постараюсь найти в них преимущества.
0
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
26.03.2020, 19:33
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
так дело в том, что в C++11 такому auto нужно присвоить значение сразу. А у меня переменная может очень долго быть типа "просто var". Пример:
Зачем??? Получается дальше везде в коде нужно откуда то знать, по какому пути выполнялась программа ранее, чтобы понять, какой у переменной тип и что с ним можно делать. Кучу проблем и граблей с этим вижу, а вот ни одного плюса - нет.
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
27.03.2020, 00:20
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
А если тип не int, а Dictionary[(Stack[Block], string), Dictionary[string, List[List[bool, List[string, List[string, List[string]]], Stack[Block], string], Stack[Block], List[string, List[string, List[string]]], FunctionAttributes, List[Stack[Block], string, List[string, List[string, List[string]]], ParameterAttributes, string]]]]? И то, этот тип один раз уже будет написан в виде new ...(), зачем его писать еще раз?
Так прямо в твоем new дай этому типа алиас shit и далее по тексту используй shit как описание типа
shit переменная = значение ;
Писать shit не сложнее чем int

Добавлено через 22 минуты
А вообще твой пример - это демонстация ущербности идеи строгой типизации (если возникают такие громоздкие типы может вообще обойтись без них ?), которая родилась только потому, что при создании первых языков программирования тусило много математиков. Для которых + это абстрактное сложение, которое конкретизируется целостью или вещественностью операндов. Отсюда операнды от рождения с конкретными типами и абстрактный оператор + , который берет тип у операндов. И тут уж никуда не денешься: придется типы операндов проверять, поскольку если один операнд целый, а другой вещественный с типом у оператора + получается ерунда полная. Ну и отсюда уже выплывает вся парадигма полностью.
А по моему опыту строгая типизация не помогает вылавливать никаких ошибок, кроме описок. И потому и без нее совсем неплохо. Если не лучше. См. Форт у которого только два типа имеют отношение к данным - символ и ячейка, вся прочая типизация приставлена к операторам. И этого как-то хватает на все про все. Но Форт - это нечто специфичное, а вот если неспецифичное с типами только у операторов ? И уже оператор дает типы операндам ? Зато воевать со строгой типизацией приведением типов не надо, приведение происходит автоматом к типу оператора по принципу "программист всегда прав".
0
Эксперт .NET
 Аватар для Usaga
14813 / 9587 / 1368
Регистрация: 21.01.2016
Сообщений: 36,110
27.03.2020, 10:22
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
А если тип не int, а Dictionary[(Stack[Block], string), Dictionary[string, List[List[bool, List[string, List[string, List[string]]], Stack[Block], string], Stack[Block], List[string, List[string, List[string]]], FunctionAttributes, List[Stack[Block], string, List[string, List[string, List[string]]], ParameterAttributes, string]]]]? И то, этот тип один раз уже будет написан в виде new ...(), зачем его писать еще раз?
Если у вас такой тип, то это уже не языка проблема, а разработчика, которому впадлу ввести нормальный класс с нормальными именем.

Цитата Сообщение от Ethereal Посмотреть сообщение
А по моему опыту строгая типизация не помогает вылавливать никаких ошибок, кроме описок.
У меня другой опыт. Да, строгая типизация привносит бюрократию, это нельзя отрицать. Иногда это подбешивает. Но эта типизация побуждает более правильным образом обращаться с переменными. Посмотрите на JavaScript. Какие-нибудь библитечки на JS. В большинстве случаев там адский ад. Просто потому, что язык позволяет.
1
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
27.03.2020, 12:42
Цитата Сообщение от Ethereal Посмотреть сообщение
А по моему опыту строгая типизация не помогает вылавливать никаких ошибок, кроме описок.
Вы имеете ввиду строгую (сильную) или статическую типизацию?

1. Строгая типизация запрещает неявные преобразования, нестрогая (слабая) - разрешает. Слабая типизация - зло. И, чем слабее, тем больше зло. Основная проблема в том, что часто ошибка всплывает не там, где описка, а совсем в другом месте.

Отлавливать описки вида "if(x = y){}" в Си - уже неприятно.
В JS операторы уже куча разных примеров, когда код (из-за неявного приведения) работает не так, как (интуитивно) ожидается. Например, операторы сравнения. Или более интересный пример: "["1", "5", "10"].map(parseInt)" возвращает "[1,NaN,2]".
В PowerShell, вообще, жуткий ад, так как массив (содержащий 1 элемент?) неявно приводится к типу элемента массива. И что вернёт функция, возвращающая массив массивов, лично мне предсказать очень сложно.


2. Что касается динамической типизации, то это, в принципе, не так страшно. Но в разы увеличивает количество необходимых проверок. И чем больше слоёв содержит приложение, тем больше этих проверок.

Пример.
От пользователя приходит значение. В коде интерфейса мы проверяем это значение и вызываем в метод бизнес-логики. В методе бизнес-логики мы не можем полагаться на то, что оно проверенное. Поэтому мы ещё раз проверяем его и, например, вызываем метод сторонней библиотеки. И этот метод, опять же, начинается с проверки аргументов.

Уже поэтому статическая типизация лучше динамической. А ещё лучше, если типы можно задавать ещё более строго. Например, не просто "string", а "string, not null, length() <= 100".

У статической типизации есть и другие преимущества: больше ошибок отлавливается на этапе компиляции, у компилятора больше возможностей для оптимизации кода. И я не знаю ни одного преимущества динамической типизации. Особенно, если в системе типов есть тип dynamic.


3. Что касается явной и неявной типизации, то тут мнения расходятся. При использовании неявной типизации проще писать код, но сложнее его читать. Оптимальный вариант - неявная типизация с возможностью задать тип явно.


Итого:
Система типов "идеального" ЯП должна быть:
- строгая (без неявных преобразований)
- статическая (включая зависимые типы и тип dynamic)
- неявная (с возможностью задать тип явно)
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
27.03.2020, 13:05  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
Итого:
Система типов "идеального" ЯП должна быть:
- строгая (без неявных преобразований)
- статическая (включая зависимые типы и тип dynamic)
- неявная (с возможностью задать тип явно)
Опять обсуждение чего-то "идеального"!
Можно бесконечно спорить об "идеальном". Но это не реальное и смысла в этом споре ноль. Как бы там не было, система типов моего языка программирования такая:
- Оператора явного преобразования в принципе нет, только либо неявные преобразования, либо через конструктор.
- Есть как статические, так и динамические типы.
- Можно задавать тип как явно, так и неявно.
С типом var меня убедили, он уходит в прошлое. Нет смыла в двух рекурсивных типах. Теперь нужно будет, как и в C#, либо явно указать значение при конструкции var (если это значение будет null, переменная будет типа null), либо использовать typename.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
27.03.2020, 13:13
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Опять обсуждение чего-то "идеального"!
Зачем нужен новый язык, если он не будет ближе к идеалу, чем уже существующие?
1
Эксперт .NET
 Аватар для Usaga
14813 / 9587 / 1368
Регистрация: 21.01.2016
Сообщений: 36,110
27.03.2020, 13:17
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Есть как статические, так и динамические типы.
Что ещё за динамические типы? Которые самопроизвольно свой тип меняют?) Была строка, а через минуту уже класс Color?

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
С типом var меня убедили, он уходит в прошлое.
Полезная вещь и вы её выкидываете?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
27.03.2020, 13:21  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Что ещё за динамические типы? Которые самопроизвольно свой тип меняют?) Была строка, а через минуту уже класс Color?
Нет, тип присваивается один раз, но определяется на этапе выполнения, а не компиляции.
Цитата Сообщение от Usaga Посмотреть сообщение
Полезная вещь и вы её выкидываете?
Я имею в виду тип, такой, как в сообщении #29, а не просто сокращенное объявление, когда конструктор уже сообщает о типе. Второе как было, так и есть.
0
Эксперт .NET
 Аватар для Usaga
14813 / 9587 / 1368
Регистрация: 21.01.2016
Сообщений: 36,110
27.03.2020, 13:25
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Нет, тип присваивается один раз, но определяется на этапе выполнения, а не компиляции.
Но присваивание пишется в коде, где и может быть выведен тип на этапе компиляции. И тип ЧЕГО надо оговаривать явно. В вашем случае тип переменной. Динамическая типизация? Новый JavaScript пишете?

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Я имею в виду тип
var не тип, а ключевое слово объявления переменной, говорящее компилятору, что тип нужно вывести из выражения с права от знака присваивания.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.03.2020, 13:25

Чего вам не хватает в языке C#?
Добрый день! Чего вам не хватает в языке c#? Какие фичи хотели бы добавить?

Какие компиляторы вам известны?
Какие компиляторы языка С вам известны? Опишите их особенности

Какие игры вы бы хотели видеть в переиздании?
Вопрос большей частью для тех кто помнит игры до 2000-ых как на PC, так и на Спектруме =) и всё их разнообразие :) Какие бы из игр...

Какие рэп-исполнители Вам нравятся?
какие группы вам нравятся

Какие кодировки писем Вам известны?
Всем привет понимаю что не заслуживаю как новенький о помощи но все же попрошу помогите . Вопрос жизни . Какие кодировки писем в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru