• Как передать из функции tuple?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    ну я бы не стал заморачиваться с именованием членов кортежа. но если очень хочется, вроде в МСДН все было внятно прописано. гуглим что то типа кортежи C#
    пример кода ниже, две функции используют разные способы доступа к элементам кортежей. на мой взгляд самые практичные. ну и задача
    как описать две функции, которые принимают и возвращают подобные tuple?
    там точно решена
    сам код
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace experience_with_tuples
    {
        class Program
        {
            static void Main(string[] args)
            {
                var t = (1, "test", true);
                ConOut_tuple(job_with_tuple(t));
                // хотя можно и так. но не забываем про скобки
                ConOut_tuple(job_with_tuple((1, "test", true)));
            }
    
            static (int, string, bool) job_with_tuple((int, string, bool) t)
            {
                (var i, var s, var b) = t;
                i++;
                s += " successful";
                b = !b;
                return (i, s, b);
            }
    
            static void ConOut_tuple((int, string, bool) t) =>
                Console.WriteLine(
                    t.Item1 + Environment.NewLine +
                    t.Item2 + Environment.NewLine +
                    $"detected errors: {t.Item3}"
                    );
        }
    }

    выхлоп
    mw6Fhhh.png

    upd еще об именовании
    как только вы хотите именовать члены кортежа, что бы все было строго и логично и через десяток листов кода ясно понимать что это тут у нас?
    вам уже нужен не кортеж а класс. хотя иногда лучше структура. но это совсем отдельная и вполне достойная внимания тема.
    кортеж классная штука, но она [реально классная] для решения локальных задач в функциональном стиле. в идеале, когда не зависимо от количества строк, и так все сразу ясно и понятно. типа на входе проекция в кортеж, а на выходе сразу декомпозиция. тогда по коду и так видно что происходит.
    типа такого
    public (int, int) MovePoint(int x, int y)
    {
      // bla-bla-bla
      // изменения x, y
      return (x, y);
    }
    ...
    (var newX, var newY) = MovePoint(oldX, oldY);
    Ответ написан
    Комментировать
  • Возможно низкоуровневое программирование без математики?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Смотря что понимается под математикой.

    Булева алгебра, матрицы, немного интегрального счисления и немного геометрии.
    То есть по сути вам нужна математика до 4 класса, 8,9 класс и первый курс любого технического вуза.
    Ответ написан
    2 комментария
  • Возможно низкоуровневое программирование без математики?

    @dshumov
    Олдскул - Фигурнов форева
    Небольшое уточнение - знания 6-ого класа - избыточны. Низкоуровневое программирование - это же либо машинные коды, либо асемблер. А это все 0 и 1 ну и плюсом системы счисления знать (двоичную, шестнадцетеричную и т.д)
    Ответ написан
    5 комментариев
  • Как правильно реализовать множество проверок объекта?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    В топике нет проблемы как таковой. Проверки можно делать по разному. Но главной метрикой скорее всего будет - компактность кода и скорость внесения в него изменений. Из best practices. Заводите вспомогательный класс. Helper. И делаете 20+ методов.
    Ответ написан
    Комментировать
  • Как правильно реализовать множество проверок объекта?

    @Dmtm
    Android
    смотря какой вид проверки нужен - все случаи или до первой неудачной
    для первого можно предложить Builder который собирает все нужные классы проверки и наружу смотрит только один метод fun check(): Result
    для второго почти такой же билдер но с методом fun next(): Result и пока не null например, т.е. проверки закончились (или пока в Result не пришла ошибка)
    Ответ написан
    Комментировать
  • С#. Нужно выбрать папку, что бы программа в последующем обработала все файлы имеющиеся там, как можно реализовать?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    У FolderBrowserDialog есть свойство SelectedPath и задавайте его перед ShowDialog, после закрытия сохраняйте его в поле класса и всего то.
    Ответ написан
    Комментировать
  • Что выбрать новичку: Python, C++ или все же GOlang?

    Mogekoff
    @Mogekoff
    студент кмбшник
    C++ - нетленная классика. С него начинают изучения программирования в университетах. Отличная база для новичка как мне кажется. На нем же Вы сможете разрабатывать как под iOS, так и под Андроид. Да по идее даже и в вебе, но это уже слишком.

    Но если отбросить академический интерес и поднять вопрос денег, то как dimonchik2013 уже сказал - Python. Либо в перспективе тот же Go.
    Ответ написан
    3 комментария
  • Как изменить код чтобы он работал?

    myjcom
    @myjcom Куратор тега C++
    Как изменить код чтобы он работал?

    Например так
    //... 
    a = max({b, c, d});
    //...


    std::max

    Third version
    template< class T >
    T max( std::initializer_list<T> ilist );

    может принимать initializer_list
    Ответ написан
    Комментировать
  • Какую книгу посоветуете, чтобы знать java на "среднем" уровне?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Для среднего уровня понадобится примерно десяток книг и как минимум три года реального опыта.
    Ответ написан
    Комментировать
  • Изучение языка C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    начиная с появления .net core - он стал кроссплатформенным
    с выходом .dot net 5 разделение опять исчезнент. дотнет будет кроссплатформеным тотатльно
    если интересно почитатать https://habr.com/ru/company/raiffeisenbank/blog/451136/
    хотя уже есть более свежие обзоры

    ps про VS для OS X уже упомянуто. под динукс (да и вобще подо все) есть бесплатный VS CODE. есть еще тоже тотально кроссплатформенный Rider от JetBriins. но у него не существует бесплатных редакций. разве что только беты
    Ответ написан
    2 комментария
  • ООП-шники, когда правильно использовать наследование вместо композиции?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    совет - не заморачивайтесь. когда точно нужна будет иерархия классов с наследованием. вы это почувствуете
    3 года назад, после разочарования в наследовании..
    значит общий стаж точно не менее 3+? ;))
    .. меня вот вообще все чаще и больше тянет в функциональную парадигму. но в шарпе она как то вся почти в пределах LINQ.. на F# поглядываю ))
    переход не переход, а вот комбинация точно может давать интересные результаты ))
    Ответ написан
    Комментировать
  • Почему именно такое отношение между классами ( Trip has Airplane)?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Да все эти задания "на ООП" c высосанными из пальца иерархиями наследования, как ты выразился, "конченные". Не задумывайся, нет там логики, автор никогда не писал реальный код.
    Ответ написан
    1 комментарий
  • Что делать дальше?

    @terminator-light
    Изучать паттерны.
    А затем задать себе вопрос: в какой области хочешь дальше развиваться? Web или Android - самые широкие. И, конечно, же смотреть на вакансии в своем регионе. Чего больше, ту и сферу выбирай. Если Android, начинай изучать его основы, подбери книги, статьи и т.д. Напиши простенькое приложение типа todo-list или калькулятора и т.д. Как у тебя это получится, можешь браться за сложное и реализовать приложение, работающее с API, постепенно изучая новые библиотеки и технологии.
    Говоря о web, нужно будет смотреть на фреймворки (Spring, JSP/JSF...), а знание JS и SQL понадобится в любом случае
    Ответ написан
    Комментировать
  • Что делать дальше?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    просто хотел узнать, что делали вы, после того как вы закончили основы

    У меня не было курсов. И Тостера тоже не было. Доступ в Интернет был, но не чаще, чем раз в неделю, на час и на скорости примерно 15 килобит в секунду. У меня даже IDE не было. Был только учебник, текстовый редактор, компилятор с интерфейсом командной строки и желание стать программистом. Я прочитал учебник и пытался писать программы. Когда не получалось, перечитать учебник ещё и ещё раз, экспериментировал с кодом снова и снова. А так как писал я на Ассемблере, ошибки в программах в лучшем случае заканчивались её молчаливым закрытием, а в худшем перезагружали или завешивали компьютер. Через год упорных ежедневных стараний я достиг уровня достаточного, чтобы устроиться на работу.

    Ну как, помогло вам знание о том, что делал я?
    Ответ написан
    2 комментария
  • Зачем нужно ООП?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Прочитайте "Чистый код" Роберта Мартина, там это доходчиво объясняется. Все существующие парадигмы программирования, паттерны проектирования и архитектурные принципы существуют ровно с одной целью - снизить сложность сопровождения и развития большой кодовой базы.
    Ответ написан
    Комментировать
  • Неоплачиваемая стажировка, без знаний. Реально ли?

    @OKF
    Программист и системный администратор - разные профессии. И если хотите быть программистом, не тратьте время на системное администрирование, знания, конечно лишними не будут, но лучше сразу развиваться как программист. Определите сферу и языки программирования, в которых хотите развиваться и изучайте, самостоятельно или в учебном заведении. Как наберете хоть какую-то базу можете пробовать устраиваться стажером или джуниором (младшим программистом). Не знаю откуда вы, но многие крупные компании охотно проводят различные стажировки, нанимают джуниоров для дальнейшего обучения.
    Ответ написан
    2 комментария
  • Видеоуроки - долго, и много воды. Стоит ли тратить на них время?

    Видео уроки хороши только для тех, кто их продает или другим способом зарабатывает на этом.
    Чтение эффективней, да и полезней для памяти.
    После того как прочитал php для начинающих МакГарта, а затем PHP 7 Д. Котерова , понял сколько времени потратил зря на странные видео уроки.

    Ну и конечно форумы.
    Ответ написан
    Комментировать
  • Видеоуроки - долго, и много воды. Стоит ли тратить на них время?

    @bozuriciyu
    Система обуздания мысли уже в действии, в так называемой системе наглядного обучения, имеющей превратить гоев в немыслящих, послушных животных, ожидающих наглядности, чтобы сообразить ее


    Протокол Сионских мудрецов, п.16
    Ответ написан
    Комментировать