что-то у меня не получилось заставить яндекс карты скачивать свои карты в каталог
/storage/external_SD/Android/data/ru.yandex.yandexmaps
но зато я смог заставить работать приём файлов в ES проводнике в
/storage/external_SD/Android/data/com.estrongs.android.pop
что меня гораздо больше радует.
Не, я про то, что в вашем первом примере в функциях add и add2 аргумент передается одинаково: int[string] array
и также он одинаково правится: array["add"] = 1;
Разница только в возвращаемом значении.
Значит, в обоих случаях массив передается по ссылке?
Р-р-р.
За такой синтаксис надо бить по голове, учебником по… (эргономике?)
Зачем там .to_string()?
Почему insert(), а не []?
И вообще, квадратные скобки скорее соответствуют replace. Что будет, если там уже есть ключ add?
Про чистку памяти возникают еще интересные вопросы. Cначала просто: я правильно понимаю, что вот на этой строчке x = HashMap::new() память первого массива полностью освобождается? А в конце main освобождается и второй? А теперь хитрее: представим, что мы копируем из одного массива данные в другой. И ключи у них ну очень длинные, мегабайты длинной. Как будет работать такая процедура? Ключи будут дублироваться в памяти, или будет вестись счетчик ссылок на одинаковые строки и удалятся эти строки будут только когда их более никто не использует?
Ну, числа с плавающей точкой как ключи, я вообще-то ни разу не использовал. В доке по PHP написано, что они приводятся к целому ключу.
Но создание — это ещё относительно просто в обоих языках, а вот например вернуть из функции такой ассоциативный массив целиком — это уже похоже на нетривиальную задачу. Хотя может я зря поднимаю эту тему, и GC в обоих языках работает аккуратно и всегда? В PHP об этом вообще не думаешь. Оно просто работает:
Ну, я в курсе что и Rust, и в D, нечто подобное есть. Вот тут как раз привели пример на D.
Просто хотелось бы получить примеры простого кода как это делать правильно на Rust. А потом сравнить их и понять. Также не плохо было бы обсудить как эти массивы освобождаются из памяти и требуются ли для этого какие-то специальные действия. В PHP это все выглядит очень просто. А насколько просто это можно сделать в этих языках?
Господа, а можно сделать что-то вроде «Rust для программиста на PHP».
Я понимаю, это выглядит смешно, но писать быстро и интуитивно понятно — это весьма важно.
Просмотрев несколько статей про Rust не нашел там простого способа сделать ассоциативный массив.
Не путайте DRM на ПО c DRM для линейного контента (т.е. книги, музыка, видео). Линейный контент можно тупо захватить на аналоговом уровне, почистить от шума, переоцифровать и пустить в продажу. С ПО так не сделать. Для ПО постоянно выходят патчи. Тут «пираты» пролетают. Только отломал защиту от игрушки, а вышел новый патч, и начинай работу заново. Геморрой. Покупатели ПО у пиратов этот геморрой получают по полной мере. Потому ради избавления от этого геморроя проще заплатить разумных денежек. С линейным контентом всё совсем по другому. И потому DRM бесполезно. Не понимание фундаментальной разницы заставляет индустрию придумывать разные технологии защиты: DVD, SD, HDMI. Все их сломали быстрее, чем они захватили рынок. Итого: от DRM для линейного контента нет никакой пользы кроме вреда. Вред получают пользователи. Пользу не получают издатели. Очевидно издатели и дальше будут пытаться придумать новый DRM для линейного контента. И не менее очевидно, что будут пролетать. Но ситуация уже начинает меняться, появляются технологии продажи линейного контента без защиты. Тот издатель, кто предложит наиболее адекватный механизм получит колоссальную прибыль. А все DRM'щики — пролетят по любому. Исключая ПО.
Введут DRM остальные увидят что это есть хорошо(контент станут активно покупать а не пиратить)
Тут ошибка. DRM — это плохо изначально. И пиратить всякие фильмы/книги/музыку будут по любому. Ибо все равно работает захват через аналоговый канал. Только когда до индустрии дойдет, что можно успешно продавать этот контент без DRM — только тогда и начнутся реальные продажи. Продажи при требовании анальной пробки у клиента никогда не получат высокой популярности, потому что пираты будут предлагать тоже самое, но без неё.
Или наоборот привнесения охлаждения внутрь чипа т.е. пусть в чипах будут спец каналы, как кровеносные сосуды в организмах, но гонять они будут не кровь, а охлаждающую жидкость. Если охлаждение «опустить» на сам полупроводник, то его можно хорошо «разогнать». Тем более, что такая схема позволяет делать плотную 3-D компоновку. Сейчас нельзя сделать чип слишком толстым — ибо внизу «подгорит», даже если наверху не прогрелось.
Именно. Для ИИ неестественно добывать ресурсы на планете. Это муторно и небезопасно. Гораздо эффективнее саморазмножающимся роботам жить в астероидах/кольцах/мелких спутниках.
Ну, т.е. след то есть. Ибо кипалайв будет только среди тех, кто https соединение установил. А это в логи попадает. Но это получаются все клиенты сервера. Искать надо только среди них. Т.ч. формально след есть, но след преступника никак не отличить от следов тысяч клиентов этого сервера.
/storage/external_SD/Android/data/ru.yandex.yandexmaps
но зато я смог заставить работать приём файлов в ES проводнике в
/storage/external_SD/Android/data/com.estrongs.android.pop
что меня гораздо больше радует.
В России есть хоть один клиновоздушный двигатель?
Спасибо за ответы.
int[string] array
и также он одинаково правится:
array["add"] = 1;
Разница только в возвращаемом значении.
Значит, в обоих случаях массив передается по ссылке?
Но вот разница by-reference — как то не совсем уловима. Вроде и в функции add массив-аргумент тоже правится?
За такой синтаксис надо бить по голове, учебником по… (эргономике?)
Зачем там
.to_string()
?Почему
insert()
, а не[]
?И вообще, квадратные скобки скорее соответствуют replace. Что будет, если там уже есть ключ
add
?Про чистку памяти возникают еще интересные вопросы. Cначала просто: я правильно понимаю, что вот на этой строчке
x = HashMap::new()
память первого массива полностью освобождается? А в конце main освобождается и второй? А теперь хитрее: представим, что мы копируем из одного массива данные в другой. И ключи у них ну очень длинные, мегабайты длинной. Как будет работать такая процедура? Ключи будут дублироваться в памяти, или будет вестись счетчик ссылок на одинаковые строки и удалятся эти строки будут только когда их более никто не использует?Но создание — это ещё относительно просто в обоих языках, а вот например вернуть из функции такой ассоциативный массив целиком — это уже похоже на нетривиальную задачу. Хотя может я зря поднимаю эту тему, и GC в обоих языках работает аккуратно и всегда? В PHP об этом вообще не думаешь. Оно просто работает:
array(2) { ["o"]=> int(2) ["add"]=> int(1) } array(2) { ["c"]=> int(4) ["add"]=> int(1) }
Просто хотелось бы получить примеры простого кода как это делать правильно на Rust. А потом сравнить их и понять. Также не плохо было бы обсудить как эти массивы освобождаются из памяти и требуются ли для этого какие-то специальные действия. В PHP это все выглядит очень просто. А насколько просто это можно сделать в этих языках?
Я понимаю, это выглядит смешно, но писать быстро и интуитивно понятно — это весьма важно.
Просмотрев несколько статей про Rust не нашел там простого способа сделать ассоциативный массив.
Тут ошибка. DRM — это плохо изначально. И пиратить всякие фильмы/книги/музыку будут по любому. Ибо все равно работает захват через аналоговый канал. Только когда до индустрии дойдет, что можно успешно продавать этот контент без DRM — только тогда и начнутся реальные продажи. Продажи при требовании анальной пробки у клиента никогда не получат высокой популярности, потому что пираты будут предлагать тоже самое, но без неё.
украденопридумано до нас.