Здравствуйте, Muxa, Вы писали:
M>>>>А если в Королеве придешь в рабочий день? RF>>>Только в обеденный перерыв (с 13 до 14). Или после 17:35. (В пятницу--после 16:20). AN>>Ты и в Москву на собеседование в 19:00 — 19:30 успеешь. M>Слишком поздно. M>Мамка заругает.
Здравствуйте, VladFein, Вы писали:
VF>Я это и не предлагаю; просто можно заметить, что в 64-битный unsigned long помещается только 20!, и дальше идти по циклу не стоит...
А вот, кстати, интересно, можно ли написать функцию, которая возвращает 21! и более в виде строки цифр? Что-то у меня математического аппарата не хватает.
Здравствуйте, mgu, Вы писали:
P>>string p = 25.ToString(); mgu>string -- это объект с поведением примитивного типа, это во многих яхыках так, в т. ч. и С++-ах с человеческим лицом.
Речь не о строках, а о магии боксинга для value-типов в C#.
Здравствуйте, mgu, Вы писали:
mgu>Так вы уже практически всё и рассказали. Эти вопросы, скорее, к архитектору. А знания си-шарпа как языка -- это отличия класса от структуры и using от using.
Я понятия не имею, чем должен заниматься архитектор, а то директор сам меня так называет, хотя я 99 процентов времени обычной разработкой занимаюсь, а принятие стратегических решений один черт за начальством и за исполнителями. Могу только советовать как консультант. У юниоров полномочия 1 в 1 как у меня, если что, хоть и явный юниор у нас один, и выше этого уровня он вряд ли когда поднимется по объектичным причинам, хоть и его уровень на много порядков круче чем уровень топикстартера.
mgu>А зачем приглашали питониста? Джавистов-то как собак нерезаных.
Затем, что нам язык программирования не важен. Тот, на котором мы пишем, один черт никто не знает, наверное единственные в мире кто его в продакшене применяет . Но платформа JVM. А вот общая эрудиция важна, как и умение программировать и знание алгоритмов и общего курса Computer Science. Если опыт только Java, думает только энтерпрайзами, формочками и базами данных, а весь опыт это багфикс какого легаси — это наоборот недостатком будет. Черти какой хайлоад тоже нам не нужен.
Здравствуйте, mgu, Вы писали:
P>>string p = 25.ToString();
mgu>string -- это объект с поведением примитивного типа, это во многих яхыках так, в т. ч. и С++-ах с человеческим лицом.
Про это уже объяснили.
P>>int c = a + b; P>>чем P>>int c = a.add(b);
mgu>В Джаве есть плюс как сложение, от сотворения мира.
Только для примитивных типов. Если кому-то понадобятся, к примеру, комплексные числа, плюс работать не будет. Впрочем, может, в новой Java все изменилось, я давно ее не видел.
mgu>Если блюёт исключениями, то оборачивать всю функцию в try/catch нэ надо.
Может и не надо. Но я не рассуждаю, как надо, а как нет. Код, с которым мне приходилось работать, оборачивали. Видимо, боялись, что полетит исключение из catch.
И ставили throws Exception потому, что тупо лень было перечислять весь список исключений, которые мог выбросить метод.
mgu>А вот, кстати, интересно, можно ли написать функцию, которая возвращает 21! и более в виде строки цифр? Что-то у меня математического аппарата не хватает.
а вот это тебе аукается нелюбовь к фреймворкам и желание делать все самому. бери готовые
Здравствуйте, VladFein, Вы писали:
VF>Я это и не предлагаю; просто можно заметить, что в 64-битный unsigned long помещается только 20!, и дальше идти по циклу не стоит...
Задачу на факториал на собеседовании имеет смысл спрашивать только для того, что бы поговорит с кандидатом о двух вещах:
1. Понимание размера данных и переполнения.
2. Понимание отличий рекурсии от итерации.
Для практической задачи на вычисление факториала с ограничением входных параметров, лучше не по циклу идти, а делать так:
unsigned long fact( unsigned long value )
{
// Для 64-х битной платформы.static const unsigned long MAX_FACT_ARG = 20;
static const unsigned long FACT[ MAX_FACT_ARG + 1 ] =
{
1,
1,
2,
6,
24,
120,
720,
5040,
40320,
362880,
3628800,
39916800,
479001600,
6227020800,
87178291200,
1307674368000,
20922789888000,
355687428096000,
6402373705728000,
121645100408832000,
2432902008176640000
};
if ( value > MAX_FACT_ARG )
return -1;
return FACT[ value ];
}
Здравствуйте, mgu, Вы писали:
mgu>А вот, кстати, интересно, можно ли написать функцию, которая возвращает 21! и более в виде строки цифр? Что-то у меня математического аппарата не хватает.
Здравствуйте, AlexGin, Вы писали:
AG>P.S. Статический метод — это метод не принадлежащий ни одному из объектов (экземпляров) класса.
Как может метод принадлежать экземпляру? Метод всегда принадлежит классу. Просто обычный метод применяется к instance, т.е. к полям объекта, а статический — к классу, т.е. к полям класса.
AG>Он просто объявлен в пространстве имён данного класса. Фактически — это аналог глобальной функции (просто объявленной в составе класса).
Одинаковая реализация не говорит, что это идеалогически одно и то же. И кроме того, в чистых OO языках нет глобальных функций.
Здравствуйте, AlexRK, Вы писали:
RF>>>Тем, что он выполняется для всех объектов этого класса при его вызове.
AG>>Значит ли это, что если НЕТ НИ ОДНОГО объекта этого класса, что статический метод выполняться НЕ БУДЕТ?
ARK>На некоторых компиляторах будет, но медленно. Но вообще это undefined behavior.
Будет на всех и очень быстро. Когда много объектов этого класса, тогда медленно.
Здравствуйте, mgu, Вы писали:
mgu>А вот, кстати, интересно, можно ли написать функцию, которая возвращает 21! и более в виде строки цифр? Что-то у меня математического аппарата не хватает.
Ну вот что-то типа того — на си краше. Получился какой-то кусок говна, но вроде работает:
Здравствуйте, Тёмчик, Вы писали:
Тё>Здравствуйте, AlexGin, Вы писали:
AG>>P.S. Статический метод — это метод не принадлежащий ни одному из объектов (экземпляров) класса. Тё>Как может метод принадлежать экземпляру? Метод всегда принадлежит классу. Просто обычный метод применяется к instance, т.е. к полям объекта, а статический — к классу, т.е. к полям класса.
Что за дичь! К каким полям класса? Разве что к статическим полям...
У кого какие мнения — строка с OMG:
— скомпилируется/ не скомпилируется
— выполниться/ не выполниться
AG>>Он просто объявлен в пространстве имён данного класса. Фактически — это аналог глобальной функции (просто объявленной в составе класса). Тё>Одинаковая реализация не говорит, что это идеалогически одно и то же. И кроме того, в чистых OO языках нет глобальных функций.
Я в курсе, что в новых ЯП нет понятия глобальная функция, тем не менее — не будешь спорить, что статические — аналоги глобальных.
НАПОМНЮ — речь шла об C++
Здравствуйте, Тёмчик, Вы писали:
Тё>Здравствуйте, AlexRK, Вы писали:
RF>>>>Тем, что он выполняется для всех объектов этого класса при его вызове.
AG>>>Значит ли это, что если НЕТ НИ ОДНОГО объекта этого класса, что статический метод выполняться НЕ БУДЕТ?
ARK>>На некоторых компиляторах будет, но медленно. Но вообще это undefined behavior.
Тё>Будет на всех и очень быстро. Когда много объектов этого класса, тогда медленно.
Здравствуйте, elmal, Вы писали:
E>Я понятия не имею, чем должен заниматься архитектор, а то директор сам меня так называет, хотя я 99 процентов времени обычной разработкой занимаюсь, а принятие стратегических решений один черт за начальством и за исполнителями. Могу только советовать как консультант. У юниоров полномочия 1 в 1 как у меня, если что, хоть и явный юниор у нас один, и выше этого уровня он вряд ли когда поднимется по объектичным причинам, хоть и его уровень на много порядков круче чем уровень топикстартера.
Вот архитектору как раз и надо знать различия между языками и платформами, чтобы выбирать под конкретную задачу.
Интересно, а какие объективные причины могут мешать профессионально расти?
mgu>>А зачем приглашали питониста? Джавистов-то как собак нерезаных. E>Затем, что нам язык программирования не важен. Тот, на котором мы пишем, один черт никто не знает, наверное единственные в мире кто его в продакшене применяет . Но платформа JVM. А вот общая эрудиция важна, как и умение программировать и знание алгоритмов и общего курса Computer Science. Если опыт только Java, думает только энтерпрайзами, формочками и базами данных, а весь опыт это багфикс какого легаси — это наоборот недостатком будет. Черти какой хайлоад тоже нам не нужен.
Здравствуйте, Privalov, Вы писали:
P>>>string p = 25.ToString();
mgu>>string -- это объект с поведением примитивного типа, это во многих яхыках так, в т. ч. и С++-ах с человеческим лицом.
P>Про это уже объяснили.
А я всё равно ничего не понял, в чём фишка-то? И ещё больше зауважал JavaScript, где нет этих Баден-Баденов.
P>>>int c = a + b; P>>>чем P>>>int c = a.add(b);
mgu>>В Джаве есть плюс как сложение, от сотворения мира.
P>Только для примитивных типов. Если кому-то понадобятся, к примеру, комплексные числа, плюс работать не будет. Впрочем, может, в новой Java все изменилось, я давно ее не видел.
В нашем колхозе мнимые числа только в отчётности. А точки складываем методом, да.
mgu>>Если блюёт исключениями, то оборачивать всю функцию в try/catch нэ надо.
P>Может и не надо. Но я не рассуждаю, как надо, а как нет. Код, с которым мне приходилось работать, оборачивали. Видимо, боялись, что полетит исключение из catch.
Ужас какой.
P>И ставили throws Exception потому, что тупо лень было перечислять весь список исключений, которые мог выбросить метод.
Так и ссылочные типы бы выбросили до кучи, оставили бы вместо них Object.
Здравствуйте, koenig, Вы писали:
mgu>>А вот, кстати, интересно, можно ли написать функцию, которая возвращает 21! и более в виде строки цифр? Что-то у меня математического аппарата не хватает.
K>а вот это тебе аукается нелюбовь к фреймворкам и желание делать все самому. бери готовые
Здравствуйте, AlexGin, Вы писали:
Тё>>Как может метод принадлежать экземпляру? Метод всегда принадлежит классу. Просто обычный метод применяется к instance, т.е. к полям объекта, а статический — к классу, т.е. к полям класса. AG>Что за дичь! К каким полям класса? Разве что к статическим полям...
Статик это и есть поле класса. А ещё, копий класса может быть несколько- по одной на ClassLoader
AG>>>Он просто объявлен в пространстве имён данного класса. Фактически — это аналог глобальной функции (просто объявленной в составе класса).
Нет. См ниже мой коммент.
Тё>>Одинаковая реализация не говорит, что это идеалогически одно и то же. И кроме того, в чистых OO языках нет глобальных функций. AG>Я в курсе, что в новых ЯП нет понятия глобальная функция, тем не менее — не будешь спорить, что статические — аналоги глобальных.
Нет
AG>НАПОМНЮ — речь шла об C++
Где? C++ это гибрид ежа с ужом, потому приводить в пример его для подтверждения OOP концепций неправильно.