- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
func getTransport(tt string) (iTransport, error) {
if tt == "scooter" {
return newElectricScooter(), nil
}
if tt == "quadcopter" {
return newQuadcopter(), nil
}
return nil, fmt.Errorf("Wrong type")
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
func getTransport(tt string) (iTransport, error) {
if tt == "scooter" {
return newElectricScooter(), nil
}
if tt == "quadcopter" {
return newQuadcopter(), nil
}
return nil, fmt.Errorf("Wrong type")
}
https://habr.com/ru/post/556512/
> Factory Method Pattern
> Привет, друзья. С вами Alex Versus.
> Ранее мы говорили про шаблоны проектирования Одиночка и Стратегия, про тонкости реализации на языке Golang.
> Сегодня расскажу про Фабричный метод.
+1
INTERRUPT_TABLE section:
00> FF FF | . .
02> 9F 00 | . .
DATA section:
32> 48 65 6C 6C 6F 20 77 6F | Hello.wo
3A> 72 6C 64 21 00 00 00 00 | rld . . . . .
42> 00 00 00 00 00 00 00 00 | . . . . . . . .
4A> 00 00 00 00 00 00 00 00 | . . . . . . . .
_START section:
8F> 9B 00 32 00 PUSH 32
93> 18 00 00 00 INT 0
97> 18 00 01 00 INT 1
9B> 94 40 01 00 ADD %B 1
EXIT interrupt:
9F> 81 40 16 E8 MOV %B E816
A3> 20 00 00 00 RET
RUNFLOW:
8F> 9B 00 32 00 PUSH 32
93> 18 00 00 00 INT 0 DEBUG OUTPUT: Hello world!
97> 18 00 01 00 INT 1
9F> 81 40 16 E8 MOV %B E816
A3> 20 00 00 00 RET
9B> 94 40 01 00 ADD %B 1
HALT SEQUENCE REACHED: 0xE817
Закодил свою виртуальную машину и ассемблер под неё.
Заспидранил Hello world за неделю.
https://pastebin.com/NmLEuGMU
+1
vector<int> res;
...
for (int i = 0; i < res.size(); i++) {
printf("%d%c", res[i], " \n"[i + 1 == res.size()]);
}
Решил вспомнить как олимпиадные задачки решать.
+1
%% Generates a Normal-distributed random variable using Box-Muller method
%% from: https://github.com/basho/basho_stats/blob/develop/src/basho_stats_rv.erl
-spec rnd_normal(integer(), integer()) -> non_neg_integer().
rnd_normal(Mean, Sigma) ->
Rv1 = random:uniform(),
Rv2 = random:uniform(),
Rho = math:sqrt(-2 * math:log(1-Rv2)),
abs(trunc(Rho * math:cos(2 * math:pi() * Rv1) * Sigma + Mean)).
Это норма.
+1
// Define the module
define(function(require) {
// Require empty list error
var EmptyListError = require('../errors/property_errors').EmptyListError;
// Character-rank list class
function WeightedList(/* ...keys */) {
this._total = 0;
this._generateList.apply(this, arguments);
}
WeightedList.prototype._generateList = function() {
var collection;
if (typeof arguments[0] == 'object') {
collection = arguments[0];
} else {
collection = arguments;
}
for (var i = 0; i < collection.length; i++) {
this[collection[i]] = this[collection[i]] === undefined ? 1 : this[collection[i]] + 1;
this._total++;
}
}
WeightedList.prototype.getRandomKey = function() {
if (this._total < 1)
throw new EmptyListError();
var num = Math.random();
var lowerBound = 0;
var keys = Object.keys(this);
for (var i = 0; i < keys.length; i++) {
if (keys[i] != "_total") {
if (num < lowerBound + this[keys[i]] / this._total) {
return keys[i];
}
lowerBound += this[keys[i]] / this._total;
}
}
return keys[keys.length - 1];
};
WeightedList.prototype.increaseRank = function(key) {
if (key !== undefined && key != "_total") {
if (this[key] !== undefined) {
this[key]++;
} else {
this[key] = 1;
}
this._total++;
}
};
WeightedList.prototype.clearRanks = function() {
var keys = Object.keys(this);
for (var i = 0; i < keys.length; i++) {
if (keys[i] != "_total") {
this._total -= this[keys[i]] - 1;
this[keys[i]] = 1;
}
}
};
return WeightedList;
});
Вот почему я за четкое разделение объектов/структур и хэшей (ассоциативных массивов).
+1
if req.Lang != "" {
req.Lang = "EN"
}
Я сказал английский!
[Поставленная задача: если пришёл запрос без поля, поставить значение по умолчанию]
+1
def main():
pipe(int(input('Введите неотрицательное целое число: ')),
lambda n: (n, reduce(lambda x, y: x * y, range(1, n + 1))),
lambda tup: print(f'Факториал числа {tup[0]} равняется {tup[1]}'))
Из https://habr.com/ru/post/555370/ (Функциональное ядро на Python).
+1
function main() {
(function () {
print("Hello World!");
})();
}
а ваш С компилятор может так говнокодить? а мой компилятор может :)
+1
var proto = $new(null);
proto.foo = function() {
$print(this.msg)
}
var o = $new(null);
o.msg = "hello";
$objsetproto(o,proto);
o.foo(); // print "hello"
$objsetproto(o,null); // remove proto
o.foo(); // exception
Давайте писать ня Neko!
https://nekovm.org
+1
// Заполняет документ заказ данными с сайта.
//
// Параметры:
// ДокументОбъект - ДокументОбъект - объект документа Заказ покупателя.
// РеквизитыЗаказа - Структура - содержит значения реквизитов заказа, загруженных с сайта:
// * Ид - Идентификатор заказа, очень часто тоже что и номер.
// * Дата - дата создания заказа на сайте.
// * Номер - номер заказа на сайте.
// * ДатаОтгрузки - дата отгрузки товара по заказу.
// * ВалютаДокументаКод - трехзначный идентификатор валюты.
// * ВидЦенНаименование - наименование вида цены.
// * СуммаВключаетНДС - признак включения НДС.
// * НаименованиеСкидки - наименование скидки.
// * ПроцентСкидки - процент скидки.
// * СуммаСкидки - сумма скидки по заказу.
// * СкладНаименование - наименование склада, точки самовывоза.
// * ПодразделениеНаименование - наименование подразделения.
// * Контрагент - ссылка на контрагента, который уже был идентифицирован в базе.
// * АдресДоставки - строка адреса доставки.
// * ТочкаСамовывоза - ссылка на элемент справочника, который в прикладном решении является справочником точек самовывоза или Неопределено.
// * Товары - табличная часть документа.
// * Комментарий - текстовый комментарий.
// СвойстваЗаказа - Соответствие - содержит строковое представления свойств (ключ) и значений (значение) заказа.
// ПрикладныеПараметры - Структура - содержит параметры прикладного решения, добавленные на форму узла плана обмена.
// ОписаниеОшибки - Строка - текстовое представление ошибки.
// Успешно - Булево - признак заполнения документа.
//
Процедура ЗаполнитьЗаказ(ДокументОбъект, РеквизитыЗаказа, СвойстваЗаказа,
ПрикладныеПараметры, ОписаниеОшибки, Успешно) Экспорт
//++ НЕ ГОСИС
Валюта = Неопределено;
ОбменССайтамиУТ.ОбработатьВалютуXML(Валюта, РеквизитыЗаказа.ВалютаДокументаКод);
ДокументОбъект.Дата = РеквизитыЗаказа.Дата;
ДокументОбъект.Валюта = Валюта;
ДокументОбъект.Соглашение = ПрикладныеПараметры.Соглашение;
ДокументОбъект.Организация = ПрикладныеПараметры.Организация;
ДокументОбъект.Менеджер = ПрикладныеПараметры.Менеджер;
ДокументОбъект.Контрагент = РеквизитыЗаказа.Контрагент;
ДокументОбъект.Партнер = РеквизитыЗаказа.Партнер;
ДокументОбъект.ЦенаВключаетНДС = РеквизитыЗаказа.СуммаВключаетНДС;
ДокументОбъект.Склад = ?(ЗначениеЗаполнено(РеквизитыЗаказа.ТочкаСамовывоза),
РеквизитыЗаказа.ТочкаСамовывоза,
ПрикладныеПараметры.Склад);
УсловияПродаж = ПродажиСервер.ПолучитьУсловияПродаж(ПрикладныеПараметры.Соглашение);
Если НЕ ЗначениеЗаполнено(УсловияПродаж.ИспользуютсяДоговорыКонтрагентов)
ИЛИ НЕ УсловияПродаж.ИспользуютсяДоговорыКонтрагентов Тогда
ДокументОбъект.ПорядокОплаты = УсловияПродаж.ПорядокОплаты;
Иначе
ДокументОбъект.ПорядокОплаты = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОбъект.Договор, "ПорядокОплаты");
КонецЕсли;
ДокументОбъект.ВернутьМногооборотнуюТару = УсловияПродаж.ВозвращатьМногооборотнуюТару;
ЗаполнитьЗначенияСвойств(ДокументОбъект,
УсловияПродаж,
"ХозяйственнаяОперация, ГруппаФинансовогоУчета,
|ТребуетсяЗалогЗаТару, ФормаОплаты, ГрафикОплаты");
Если ЗначениеЗаполнено(ДокументОбъект.ГрафикОплаты) Тогда
ДокументОбъект.ФормаОплаты = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОбъект.ГрафикОплаты, "ФормаОплаты");
КонецЕсли;
ДокументОбъект.ВернутьМногооборотнуюТару = УсловияПродаж.ВозвращатьМногооборотнуюТару;
ДокументОбъект.Приоритет = Справочники.Приоритеты.ПолучитьПриоритетПоУмолчанию(ДокументОбъект.Приоритет);
Если УсловияПродаж.ИспользуютсяДоговорыКонтрагентов Тогда
ДокументОбъект.Договор = ПродажиСервер.ПолучитьДоговорПоУмолчанию(ДокументОбъект,
УсловияПродаж.ХозяйственнаяОперация,
Валюта);
Если ЗначениеЗаполнено(ДокументОбъект.Договор) Тогда
ДокументОбъект.НалогообложениеНДС = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОбъект.Договор,
"НалогообложениеНДС");
КонецЕсли;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ДокументОбъект.НалогообложениеНДС) Тогда
ДокументОбъект.НалогообложениеНДС = Справочники.Организации.НалогообложениеНДС(
ДокументОбъект.Организация,
ДокументОбъект.Склад,
ДокументОбъект.Дата);
КонецЕсли;
Комментарий = "";
Если Не ПустаяСтрока(РеквизитыЗаказа.Комментарий) Тогда
Комментарий = Комментарий + НСтр("ru = 'Комментарий менеджера на сайте'") + ": " +РеквизитыЗаказа.Комментарий;
КонецЕсли;
КомментарийПокупателя = СвойстваЗаказа.Получить("Комментарии покупателя");
Если Не КомментарийПокупателя = Неопределено И Не ПустаяСтрока(КомментарийПокупателя) Тогда
Комментарий = Комментарий + ?(ПустаяСтрока(Комментарий),"",Символы.ПС) + НСтр("ru = 'Комментарий покупателя на сайте'") + ": " + КомментарийПокупателя;
КонецЕсли;
ДокументОбъект.Комментарий = Комментарий;
СтатусЗаказа = СвойстваЗаказа.Получить("Статус заказа");