А где вы увидели требование дружить с США? Упомянутые страны стали целенаправленно и активно враждовать с США, что выражается в первую очередь во внутренней пропаганде. Есть множество стран, которые не имеют каких-то особых супердружеских отношений с США, но и не враждуют...
Это просто защита от обезьян с гранатами. Страны типа Ирана, Северной Кореи и России сначала стали недружественными к США, а уже затем получили санкции.
Словарь это просто ассоциативный массив. Структура данных, основанная на хеш-таблице, дереве того или иного вида или на чем-то еще. Такая проверка уже делается в любом случае при каждом обращении к словарю, естественным путем, она уже существует в коде реализации словаря, потому что словарю нужно в какой-то момент принимать решение - создавать новый элемент или нет. Это решение принимается уже сейчас при каждом обращении к каждой переменной. Т.е. по скорости ничего не изменится.
Почему? Я заранее предупреждаю что не знаком с Питоном, но в любом интерпретируемом языке переменные обычно хранятся в некоем словаре, где ключ - имя переменной.
Соответственно, нет ничего проще: операция "=" могла бы проверять наличие имени в словаре, и если имени нет - ошибка, если есть - обращение к значению. Операция ":=" аналогично могла бы проверять наличие имени в словаре, но ошибка генерируется если такое имя есть. Если имени нет, то добавлять в словарь имя и значение.
Как именно то или иное имя попало в словарь - совершенно неважно.
Я уже к прошлой статье такой комментарий писал:) Разработчикам языка следовало бы использовать := для ОБЪЯВЛЕНИЯ переменных, а = для присваивания УЖЕ СУЩЕСТВУЮЩИМ переменным (как в Go). Такой подход значительно обезопасил бы код от опечаток в именах переменных (когда вместо присваивания существующей переменной происходит создание новой).
ИМХО нужно было еще рассказать, что такое например std::coroutine_handle, std::suspend_always() и т.д. Судя по всему, названия методов get_return_object(), initial_suspend(), final_suspend(), unhandled_exception() и т.д. являются какими-то магическими встроенными в компилятор или в код системной библиотеки именами, как "begin()" и "end()" для коллекций - ведь никакого наследования от каких-либо интерфейсов в вашем коде я не увидел. Мне кажется, вот с таких вещей и нужно начинать...
Но статья в любом случае полезная, чем больше такой информации тем лучше.
А мне никто не предлагал аспирантуру (хотя учился хорошо). И, насколько я знаю, никому в группе не предлагали. Но во время учебы я как-то не задумывался об этом. Поработав пару лет, стал задумываться, даже пытался еще раз через знакомых прощупать почву, встретился с зав.кафедры - но он достаточно ясно дал понять, что какие-либо аспиранты или соискатели им неинтересны.
Вообще, с одной стороны, конечно я все понимаю - там и зарплата копеечная, и это не совсем то, о чем мечтают романтики слыша слово "наука", а скорее муторная бумажная работа. Но с другой стороны расставаться с ВУЗом было жалко. И даже сейчас жалко, хотя наверное это глупо:)
Раз уже здесь официальный блог X5, то хочу внести предложение. Регулярно сталкиваюсь с какими-то программами лояльности (это ведь так называется), когда право на скидку при следующей покупке печатают на чеке. И предполагается что этот чек нужно сохранять предъявлять при следующей покупке.
Зачем так делать, если есть карта покупателя? Почему нельзя записывать эту информацию на цифровой носитель (карточку, или в вашу базу, ключом к которой является номер карточки)?
Вот ведь как складывается история... С++ начинался с попытки слегка улучшить Си, добавить классы, тонкий синтаксический сахар над структурами и функиями. А сейчас приходят (но еще не пришли окончательно) к синтаксическим макросам, по сути плагинам к компилятору. Правда, выглядит все это до крайности криво, именно из-за эволюционного развития языка. Интересно, дойдет ли язык в этой эволюции до простой кодогенерации любых произвольных фрагментов кода? А до использования внешних языков для доступа к синтаксическому дереву (по типу связки HTML + JavaScript)?
Кто хочет учиться, тот будет учиться. Кто не хочет, тот найдет во что поиграть и без смартфона (раньше на уроках в точки играли, нужны просто лист бумаги и ручка). А задача учителя - мотивировать учащихся, сделать так чтобы им хотелось учиться по своей воле и без всякого принуждения.
Например, в tcl я могу и переменной а присвоить 5 и переменной 5 присвоить a:
Меня очень удивило, что значит "переменной 5 присвоить a", что это вообще может значить? Что такое "переменная 5", если это литеральная константа? Что произойдет в программе, если язык программирования все-же позволит осуществить такое присваивание? Чему будет равна константа 5 после этого?
Глядя на такие девайсы, иногда даже жалко что я на работу и с работы пешком хожу:) В транспорте (не в личном, а в общественном конечно, когда садишься куда-нибудь в автобус/электричку и едешь достаточно долго) такие штуки наверное были бы идеальны. Легкие, компактные, хакерские, и есть в их использовании некий дзен - они слишком неудобны, чтобы как на обычном компе пооткрывать кучу окон разных программ и прокрастинировать, переключаясь с одного окна на другое. В мини-ноутбуках ограниченные ресурсы, ты запускаешь что-то одно, единственную задачу, и концентрируешься только на ней.
Если бы мне было нужно, я бы из предложенных выбрал GPD Pocket 3. 10-дюймовый нетбук у меня есть - для постоянного таскания с собой все-же великоват.
Само по себе начинание замечательное. Но вот сразу замечание: почитал у них на сайте подробнее - для этого функционала требуется мобильное приложение. Что, обычного браузера на обычном компьютере уже недостаточно? У них прекрасный сайт, кстати давно пользуюсь их услугами, и личный кабинет есть. Зачем захламлять память телефона всякими "приложениями", если есть гораздо более удобное устройство - персональный компьютер, с большим экраном, с нормальной клавиатурой и мышью?...
Очень приятно выглядит, особенно клавиатура. Так и хочется прикоснуться к этим клавишам... И безусловно жалко, что сейчас таких устройств не делают (или почти не делают, про GPD в курсе). Большинству нужно только потреблять контент, а клавиатура - это для тех кто контент производит...
Проблема Питона не в операторе моржа, а в том что объявление переменных синтаксически не отличается от их использования. И вот этот оператор моржа, как я понял из статьи, пытается частично решить эту проблему... Но поскольку решение частичное, оно все равно не решает проблему. Вот если бы обязали объявлять все переменные только оператором моржа, а присваивать в ранее объявленные переменные - обычным присваиванием (как это сделано в Go), вот тогда бы был толк.
Диско Качалка. Оффлайн-браузер, позволяющий скачивать сайты на диск. Единственная мне известная программа, у которой была возможность прямо на ходу "углублять скачивание" или наоборот отказываться от скачивания отдельных частей сайта. Все остальные качали автоматически все подряд.
Разработчики Evernote, на мой взгляд, стали придумывать какие-то непонятные навороченные функции, нужные разве что топ-менеджерам и владельцам компаний, а такой простой штуки как кнопочка для разметки "code" рядом с "bold" и "italic" так и не добавили.
А установка яндекс браузера означает установку российского сертификата в систему в целом или нет?
А где вы увидели требование дружить с США? Упомянутые страны стали целенаправленно и активно враждовать с США, что выражается в первую очередь во внутренней пропаганде. Есть множество стран, которые не имеют каких-то особых супердружеских отношений с США, но и не враждуют...
Это просто защита от обезьян с гранатами. Страны типа Ирана, Северной Кореи и России сначала стали недружественными к США, а уже затем получили санкции.
Словарь это просто ассоциативный массив. Структура данных, основанная на хеш-таблице, дереве того или иного вида или на чем-то еще. Такая проверка уже делается в любом случае при каждом обращении к словарю, естественным путем, она уже существует в коде реализации словаря, потому что словарю нужно в какой-то момент принимать решение - создавать новый элемент или нет. Это решение принимается уже сейчас при каждом обращении к каждой переменной. Т.е. по скорости ничего не изменится.
Почему? Я заранее предупреждаю что не знаком с Питоном, но в любом интерпретируемом языке переменные обычно хранятся в некоем словаре, где ключ - имя переменной.
Соответственно, нет ничего проще: операция "=" могла бы проверять наличие имени в словаре, и если имени нет - ошибка, если есть - обращение к значению. Операция ":=" аналогично могла бы проверять наличие имени в словаре, но ошибка генерируется если такое имя есть. Если имени нет, то добавлять в словарь имя и значение.
Как именно то или иное имя попало в словарь - совершенно неважно.
Я уже к прошлой статье такой комментарий писал:) Разработчикам языка следовало бы использовать := для ОБЪЯВЛЕНИЯ переменных, а = для присваивания УЖЕ СУЩЕСТВУЮЩИМ переменным (как в Go). Такой подход значительно обезопасил бы код от опечаток в именах переменных (когда вместо присваивания существующей переменной происходит создание новой).
А сейчас получается нечто странное:
Т.е. один оператор работает только вне скобок, другой только в скобках. Причем возможно и вот такое
Какой в этом смысл? Не проще ли было просто разрешить обычный оператор = внутри выражений?
ИМХО нужно было еще рассказать, что такое например std::coroutine_handle, std::suspend_always() и т.д. Судя по всему, названия методов get_return_object(), initial_suspend(), final_suspend(), unhandled_exception() и т.д. являются какими-то магическими встроенными в компилятор или в код системной библиотеки именами, как "begin()" и "end()" для коллекций - ведь никакого наследования от каких-либо интерфейсов в вашем коде я не увидел. Мне кажется, вот с таких вещей и нужно начинать...
Но статья в любом случае полезная, чем больше такой информации тем лучше.
А мне никто не предлагал аспирантуру (хотя учился хорошо). И, насколько я знаю, никому в группе не предлагали. Но во время учебы я как-то не задумывался об этом. Поработав пару лет, стал задумываться, даже пытался еще раз через знакомых прощупать почву, встретился с зав.кафедры - но он достаточно ясно дал понять, что какие-либо аспиранты или соискатели им неинтересны.
Вообще, с одной стороны, конечно я все понимаю - там и зарплата копеечная, и это не совсем то, о чем мечтают романтики слыша слово "наука", а скорее муторная бумажная работа. Но с другой стороны расставаться с ВУЗом было жалко. И даже сейчас жалко, хотя наверное это глупо:)
Раз уже здесь официальный блог X5, то хочу внести предложение. Регулярно сталкиваюсь с какими-то программами лояльности (это ведь так называется), когда право на скидку при следующей покупке печатают на чеке. И предполагается что этот чек нужно сохранять предъявлять при следующей покупке.
Зачем так делать, если есть карта покупателя? Почему нельзя записывать эту информацию на цифровой носитель (карточку, или в вашу базу, ключом к которой является номер карточки)?
Вот ведь как складывается история... С++ начинался с попытки слегка улучшить Си, добавить классы, тонкий синтаксический сахар над структурами и функиями. А сейчас приходят (но еще не пришли окончательно) к синтаксическим макросам, по сути плагинам к компилятору. Правда, выглядит все это до крайности криво, именно из-за эволюционного развития языка. Интересно, дойдет ли язык в этой эволюции до простой кодогенерации любых произвольных фрагментов кода? А до использования внешних языков для доступа к синтаксическому дереву (по типу связки HTML + JavaScript)?
Кто хочет учиться, тот будет учиться. Кто не хочет, тот найдет во что поиграть и без смартфона (раньше на уроках в точки играли, нужны просто лист бумаги и ручка). А задача учителя - мотивировать учащихся, сделать так чтобы им хотелось учиться по своей воле и без всякого принуждения.
Непонятно. Там был комментарий saipr
Меня очень удивило, что значит "переменной 5 присвоить a", что это вообще может значить? Что такое "переменная 5", если это литеральная константа? Что произойдет в программе, если язык программирования все-же позволит осуществить такое присваивание? Чему будет равна константа 5 после этого?
Какие например?
Глядя на такие девайсы, иногда даже жалко что я на работу и с работы пешком хожу:) В транспорте (не в личном, а в общественном конечно, когда садишься куда-нибудь в автобус/электричку и едешь достаточно долго) такие штуки наверное были бы идеальны. Легкие, компактные, хакерские, и есть в их использовании некий дзен - они слишком неудобны, чтобы как на обычном компе пооткрывать кучу окон разных программ и прокрастинировать, переключаясь с одного окна на другое. В мини-ноутбуках ограниченные ресурсы, ты запускаешь что-то одно, единственную задачу, и концентрируешься только на ней.
Если бы мне было нужно, я бы из предложенных выбрал GPD Pocket 3. 10-дюймовый нетбук у меня есть - для постоянного таскания с собой все-же великоват.
А что нужно сделать, чтобы самому попробовать погенерировать такие картинки?
Само по себе начинание замечательное. Но вот сразу замечание: почитал у них на сайте подробнее - для этого функционала требуется мобильное приложение. Что, обычного браузера на обычном компьютере уже недостаточно? У них прекрасный сайт, кстати давно пользуюсь их услугами, и личный кабинет есть. Зачем захламлять память телефона всякими "приложениями", если есть гораздо более удобное устройство - персональный компьютер, с большим экраном, с нормальной клавиатурой и мышью?...
Очень приятно выглядит, особенно клавиатура. Так и хочется прикоснуться к этим клавишам... И безусловно жалко, что сейчас таких устройств не делают (или почти не делают, про GPD в курсе). Большинству нужно только потреблять контент, а клавиатура - это для тех кто контент производит...
Проблема Питона не в операторе моржа, а в том что объявление переменных синтаксически не отличается от их использования. И вот этот оператор моржа, как я понял из статьи, пытается частично решить эту проблему... Но поскольку решение частичное, оно все равно не решает проблему. Вот если бы обязали объявлять все переменные только оператором моржа, а присваивать в ранее объявленные переменные - обычным присваиванием (как это сделано в Go), вот тогда бы был толк.
Диско Качалка. Оффлайн-браузер, позволяющий скачивать сайты на диск. Единственная мне известная программа, у которой была возможность прямо на ходу "углублять скачивание" или наоборот отказываться от скачивания отдельных частей сайта. Все остальные качали автоматически все подряд.
Разработчики Evernote, на мой взгляд, стали придумывать какие-то непонятные навороченные функции, нужные разве что топ-менеджерам и владельцам компаний, а такой простой штуки как кнопочка для разметки "code" рядом с "bold" и "italic" так и не добавили.