Pull to refresh
28
0.6

Software Developer

Send message

Ммм... Как насчёт QString::toStdString()? Ничем не хуже ада конверсий между const char*, std::string, std::string_view.

Растовый аналог разыменовать сишный нулевой указатель или плюсовый std::optional.

Нет, это ближе к assert и не является UB.

unwrap - это и есть обработчик. Обработчик, который абортит программу в случае возврата ошибки, вроде assert.

Т.е. ещё один тип ссылок добавить в язык, внутрипоточные ссылки? И зачем владение передавать в fn (&mut s)? Как мне теперь передать в функцию объект, чтобы он в ней модифицировался?

Он не может обеспечить ничего, как только берётся первая же ссылка на подконтрольный объект или какое-нибудь поле оного.

владеющая ссылка

Ссылка - это как раз просто ссылка, она не даёт владение объектом. Если владение объектом передаётся куда-то, то ссылок на сам объект в этот момент не может существовать, иначе бы они становились невалидными и нарушали гарантии языка.

Для этого нужна ещё одна [читающая] ссылка, [а может и больше] , что Растом запрещено.

Нет, не запрещено.

пляски либо с клоном в простых случаях

Нельзя подменить доступ к объекту доступом к клону объекта, потому что клон - это уже другой объект, семантика операции получается совсем другой.

Приведите пример, когда гарантия нарушится или произойдёт утечка.

Это называется указатель. Раст даёт гарантии, что "потом проблем" не будет, отсюда и вытекает то решение с перемещением, которое сейчас есть.

Он пытался выяснить - почему так дешево и будет ли оно работать. Вполне справедливая логика, т.к. дешевое качественным бывает крайне редко.

Логика справедлива, если ты сравниваешь с другим товаром того же назначения, но дороже. Но тут он просто из всего ассортимента условно от 300 до 600 рублей не впечатлился ни одной ценой, все для него оказались подозрительно низкими. Речь просто о бытовой машинке для стрижки среднего пошиба, они никогда не были особо дорогими.

в "куда-нибудь" будет невалидная [константная] ссылка

Почему ссылка, мы же саму строку туда сохраняем?

надо компилятору следить за её лайфтаймом.

В Расте уделили внимание тому, что бы не ломать контракт функции, не меняя сигнатуру, а только код. Поэтому лайфтаймы параметров выводятся только исходя из сигнатуры функции или проставляются вручную.

Но вообще, всё проще: если функции нужно владение строкой, то лучше принимать String, если владение не нужно, то &str. А там уже вызывающий код пусть сам определит как ему оптимально поступать: клонировать или отдавать владение готовой строки.

работа же идёт с константами

А что должно произойти, когда вызываемая функция положит эту "константу" куда-нибудь и вернётся, а вызвавшая решит, что строка больше не нужна и освободит память?

Я как-то раз наблюдал сценку в магазине: молодой человек покупал машинку для стрижки, и цена его "не впечатляла", и он допытывался у продавщицы, не в долларах ли цена (там рублей 400 была типичная машинка по тем временам), почему так дёшево, будет ли она вообще работать за такую цену. В общем, находятся покупатели с логикой "очень дорого, но зато точно качественно".

Блокировочный тормоз к колесу существенно проще в эволюционном смысле, чем само колесо.

Можно начать с Экселя. "Эта ячейка равна тому, что в той плюс один". Ну и, собственно, а насколько долго можно откладывать понятие функции при изучении императивных языков?

Это уже системная проблема, нужно искать её корень и корректировать. Может, отправить сотрудника на курсы повышения квалификации, может просто не давать ему конкретно такую работу, где он совершает раз за разом одинаковые ошибки.

Интересно, как студенты относятся к необходимости переключать раскладку для этих символов: <>[]{} ?

Странно, что нигде не прозвучала тема парадигмы программирования. Я считаю, что лучше всего начинать с декларативных языков, может быть функциональных, и только потом начинать ломать мышление штуками вроде x:= x+1.

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

Ну, в Норвегии будет всё работать не конкретно так, но человек в аналогичной жизненной ситуации не будет стрессовать.

Универ в 24 тут не заканчивают, обычно где-то к 27 закругляются. На одну зарплату мужа жить никто не будет, во-первых, есть социалка, жена может получать полный размер своей зарплаты до сдачи ребёнка в ясли, во-вторых, женщина тут не меньше мужчины хочет работать и реализовывать себя. Муж, кстати, тоже успеет посидеть в декрете.

С высшим образованием есть практически гарантированный минимум зарплаты, которого уже будет хватать в данной жизненной ситуации. Плюс, для молодёжи до 34 лет много всяких послаблений для покупки недвижимости: от сниженных процентных ставок до беспроцентных кредитов на первый взнос от коммуны.

1
23 ...

Information

Rating
2,000-th
Registered
Activity