ФлеймФорумПрограммирование

Arduino String - строки которые мы заслужили? (2 стр)

Страницы: 1 2 3 411 Следующая »
#15
0:12, 12 авг 2024

Берите дальше - днк это строка.
Изображение

#16
1:10, 12 авг 2024

iw4nna.rock
> имя файла - это строка
> набор случайных символов - это строка
> время и дата - это строка

Абитуриент должен сдавать биологию, времени на подготовку мало. Но он знает, что главный в комиссии - специалист по кольчатым червям. Студент все про кольчатых червей и выучивает. Приходит на экзамен, тянет билет. Ему выпадает билет "Слон". Выходит рассказывать:"Слон - это большое серое животное на четырех колонообразных ногах, с хоботом и маленькими злыми глазками. Вот он смотрит вниз и видит там кольчатых червей. Которые подразделяются..."

#17
2:42, 12 авг 2024

iw4nna.rock
> имя файла - это строка
> набор случайных символов - это строка
> время и дата - это строка
Нет.
Да, но хозяин метода "сгенерировать рандом" — это должен быть генератор, а не строка.
Нет.

#18
2:45, 12 авг 2024

Кроме того, генератору ещё надо знать, какие именно символы должны допускаться к генерации. Древнеегипетские иероглифы допускаются? Цветные эмодзи с колобками разных рас допускаются? Комбинируемые диакритики допускаются? Непечатаемые контрольные символы допускаются? Запрещённые в юникоде кодпоинты допускаются?

#19
(Правка: 6:01) 5:59, 12 авг 2024

Ох уж форум, ох уж геймдев и тут в срач всё быстро превращается.

Давайте вернёмся всё же к сабжу.
Вот вы знаете хоть одно оправдание, цель или смысл почему std::string не перегрузили конкатенацию с числами?
Это, блджад, элементарнейшее действие в плюсах до ++17 надо было извращаться с itoa, в ++17 появилось std::to_string.
Но ведь это то почему люди полюбили скриптовые языки и сейчас весь веб и AI вращаются на PHP и Python.
Просто из-за этого.
Если бы был Arduino String в плюсах стандарта бородатого года то не было бы всей этой плеяды как тупо ненужной. Несущественной и низкопроизводительной.
Просто достаточно было перегрузить операторы - язык позволял это сделать 30 лет назад!
ЭТОПИПЕЦ. Ниспадание шор.
Такая простая вещь...

#20
6:18, 12 авг 2024

=A=L=X=
> Вот вы знаете хоть одно оправдание, цель или смысл почему std::string не перегрузили конкатенацию с числами?
Потому что, прежде всего, это не нужно. То, что нужно в 99% случаев — это форматирование, а оно делается через printf-подобный интерфейс — ты задаёшь строку-формат и подставляешь фактические аргументы. В формате ты указываешь, куда вставлять число, а ещё, как именно его отобразить — сколько знаков после запятой, применять ли экспоненциальный формат, выравнивать ли по левому краю или по правому, заполнять пробелом или нулями, писать ли "+" к положительным, в конце концов, какими символами обозначать разряды и десятичную точку.

Нет практически никаких ситуаций, когда конкатенация плюсом оказывается лучше, чем форматирование подстановкой. А нишевые ситуации, которые случаются только раз в 10 лет в специальных лабораторных условиях, в библиотеках общего назначения рассматриваться не должны. У кого возникают особенные задачи — пусть пишет свои особенные библиотеки и нормальным людям балласт не накладывает.

#21
(Правка: 6:27) 6:21, 12 авг 2024

=A=L=X=
> в ++17 появилось std::to_string
И замечательно. Так и надо было сделать. И теперь ++ стал ещё ближе к нормальному человеческому языку (Париж тоже не за один день строился). Если прямо не терпится наговнокодить — переводи число в строку явно, и затем конкатенируй по-нормальному строку со строкой. А автоматический перевод из числа в строку в операторе плюс — это говно, которого уже в джаваскрипте нормально нажрались, всем хватило, не надо больше это никуда тащить.

=A=L=X=
> Но ведь это то почему люди полюбили скриптовые языки и сейчас весь веб и AI вращаются на PHP и Python.
В питоне, между прочим, смешанный плюс тоже запрещён — приводи всё к одному типу явно и работай в нём. Надо конкатенацию — вызывай str руками. Вызовешь float — будет сложение по числам. Всё должно быть расписано явно. Питон намёков не воспринимает.

#22
6:29, 12 авг 2024

Имбирная Ведьмочка
> Потому что, прежде всего, это не нужно. То, что нужно в 99% случаев — это форматирование

Нет ты не прав. Как раз всё ровно наоборот - в 99% случаев это просто желание вывести число в консоль или поле ввода.
А форматирование с озабоченностью локалями и переводами на другой язык - это 1% случаев. Может даже 0,1%. Скорее даже 0,01%.
Ты серьёзно путаешь.

#23
6:36, 12 авг 2024

=A=L=X=
> Нет ты не прав. Как раз всё ровно наоборот - в 99% случаев это просто желание вывести число в консоль или поле ввода.
Вывод числа в консоль:

fprintf(stderr, "Chislo: %i\n", chislo);

Вывод числа в поле ввода:

chisloInput.value = chislo;

Не вижу нужды в смешанном плюсе.

#24
6:47, 12 авг 2024

Имбирная Ведьмочка

Искусственные дохлые примеры.
Попробуй уже правду-матку рубить.

                BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                String deviceName = device.getName();
                addLog("Обнаружено устройство '" + deviceName + "' -> " + device.getAddress());
                if (deviceName != null) {

Вот это как в жизни это выглядит и нехер оправыдывать всё printf. Принтф это запрещенная уже лет 30 как практика. Ненадёжная и неправильная.
Никакой язык программирования printf не заимствовал потому что ДИЧЬ.

#25
(Правка: 7:04) 7:02, 12 авг 2024

=A=L=X=
> addLog("Обнаружено устройство '" + deviceName + "' -> " + device.getAddress());

addLog("Обнаружено устройство '$s' -> %s", deviceName, device.getAddress());

Если addLog так не умеет — смело поливай этот addLog говном. Вот это — действительно то, за неимение чего надо поливать говном. А не смешанный плюс.

=A=L=X=
> Никакой язык программирования printf не заимствовал потому что ДИЧЬ.
Никакой, кроме новомодного цпп, раст, питона, джавы, жс и куча-куча других. Все языки, на которых люди пишут программы — имеют ту или иную вариацию на принтф-подобные подстановщики. Ну а кроме тех, на которые не насрать — да, не спорю, брейнфак может и не заимствовать, и хрен с ним.

#26
7:09, 12 авг 2024

Имбирная Ведьмочка
> Все языки, на которых люди пишут программы — имеют ту или иную вариацию на принтф-подобные подстановщики. Ну а кроме тех, на которые не насрать — да, не спорю, брейнфак может и не заимствовать, и хрен с ним.
шарп:

addLog($"Обнаружено устройство '{deviceName}' ->{device.getAddress()}");
#27
7:11, 12 авг 2024

Имбирная Ведьмочка
> addLog("Обнаружено устройство '$s' -> %s", deviceName, device.getAddress());

Я не понимаю как здравомыслящий здоровый человек в сознании не может понимать что это говнище говистое.
Говны говна.
Мимо смысла и намерения.

Какое было намерение в коде? Почему его как беременную корову на льду разнесло - одни копыта вправо другие влево, всё порознь?
КАК ТЫ СМОГ ЭТО НАЗЫВАТЬ ПРОГРАММИРОВАНИЕМ БЕЗ ИЗЪЯНА?

Что за червь у тебя в башке?

#28
7:13, 12 авг 2024

lilith("smokin", "thers, "@indie", puk) - специально для господ которы не понимают что такое консистентность

#29
7:16, 12 авг 2024

=A=L=X=
> Какое было намерение в коде?
Намерение в том, чтобы сделать ровно одну аллокацию для новой строки, т.к. размероность всех входящих данных заранее известно.
Либо вообще не делать никаких аллокаций, и выводить "куски" строки, как они есть. 

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

Пример с lilith() выше, как мы имеет место быть в виде функций concat или printf

Страницы: 1 2 3 411 Следующая »
ФлеймФорумПрограммирование