- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
if (...) {
if(...) {
...
} else {
return $this->render('error', array("case" => 1));
}
} else {
return $this->render('error', array("case" => 2));
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
if (...) {
if(...) {
...
} else {
return $this->render('error', array("case" => 1));
}
} else {
return $this->render('error', array("case" => 2));
}
И сразу понятно, какая ошибка прозошла (нет)
+1
rt_fold(#{}, Acc) ->
Acc;
rt_fold(Keys, Acc) ->
maps:fold(<.... опущено ...>, Acc, Keys).
+1
# это комментарий #
COMMENT это понятно что COMMENT
CO это тоже ко-ко-коментарий CO
CO функция принимает 3 параметра типа INT и возвращает ссылку на массив CO
PROC range = (INT start, end, step)REF[]INT : (
INT length = ABS((end - start) % step);
NEW [0 : length - 1]INT result; CO массив в куче CO
CO LWB —– нижний индекс массива, UPB —– верхний CO
FOR i FROM LWB result TO UPB result
DO
result[i] := start + i * step
OD;
result CO функции возвращают результат последнего вычесленного выражения CO
);
CO можно определять свои операторы CO
OP RANGE = (INT start, end)REF[]INT: range(start, end, (start < end | 1 | -1));
PRIO RANGE = 5; CO для бинарных операторов нужно задать приоритет, у сложения/вычитания приоритет = 6 CO
CO для операторов возможна перегрузка по количеству и типу аргументов CO
OP RANGE = (INT end)REF[]INT: 0 RANGE end;
OP ACCUM = ([]INT x, PROC(INT,INT)INT f)INT : (
INT length = UPB x - LWB x;
IF length = 0 THEN
1
ELIF length = 1 THEN
x[LWB x]
ELSE
INT result;
result := x[LWB x];
FOR i FROM LWB x + 1 TO UPB x
DO
result := f(result, x[i])
OD;
result
FI
);
PRIO ACCUM = 5;
CO правый операнд у ACCUM —– лямбда CO
OP ! = (INT x)INT: 1 RANGE x + 1 ACCUM ((INT x, y)INT: x * y);
printf(($g(0), "! = ", g(0), l$, 7, !7));
OP MAP = ([]INT x, PROC(INT)INT f)REF[]INT : (
NEW [LWB x : UPB x]INT result;
FOR i FROM LWB x TO UPB x
DO
result[i] := f(x[i])
OD;
result
);
PRIO MAP = 5;
PROC pow = (INT x, n)INT: x ^ n;
CO каррирование CO
printf(($g(0), " "$, RANGE 10 MAP pow(2, )));
print(new line);
OP FOREACH = (REF[]INT x, PROC(REF INT)VOID f)VOID : (
FOR i FROM LWB x TO UPB x
DO
f(x[i])
OD
);
PRIO FOREACH = 5;
REF[]INT a = -5 RANGE 6;
a FOREACH ((REF INT x)VOID:
x := x ^ 2
);
printf(($g(0), " "$, a))
https://tio.run/##jVVdbxJBFH3nV1xbTXZ1iaBpNVQfkFIlKV2C1T40mJBIkYRgUzFdEx@wtRpTPx70hyCWlkLBvzDzF/wj9dw7s0uBmgiF7syce@fOuecM5Xr1ZX3xbvX8fJ70F72nRqT6aqTO8O6qISbauqV66pTmYxk/n8@urUe438AN9TcMhhjqjzJrQQCHOP5Sx6oriePR18wGGT8mUe/1PhL29QfV09@wiywP8TlTbdXVe3Sbt@aoNufQe/zEu/R4mnKoUPVIdbDFierwov5kI/U7vA/VANn3CTnbxEl5FsEdrqBQ9DO0U25UK3SfHM71qlneaXpUaTz38FzZdovZlc0Sr6TIiRFe/FyvNKrNF4hJP3jsOABT3ES6dM2ELQl2LbtBmwmE2oA4JSXXTuXV63pzCSVMlsR/KFZ/BH8oj1MAsrrxgP60fvxpfSdh5li@T0mIOgKvff1uIo9qe/SkMA7qgI6WPrBhNvGKX6QarRT9vGxgSqJ1XyLNSHDLBs4vM7tZK1Hqvjkv3UCO63JkQfnL5uA221SDL2mU/sqNauEQJ8AN9GeRyJ7IDYcZYOEI4V31izXY0YfMjV0YshLHC6yQY5lmJeGUaELMMDwSzoAbicC6wtqAxaw/QyZSVE9WmSkuALu39CFn8QtUTK89zM4qJNJGymjIuSgeM6B7PKK3lMQnnnRRUqGY86OMC0YDR1wMqZ/SUdb6EOc5mCkIYwhkCKLscU5w5CNexTGsdRjWAxwG8Ai6F65GY2JuWhIZ07ZczYaitMXQomF1lxZj2hky3CaLQb/A3z6W@mbSXjQDbCANRI4Ou7JnrczPfPBfCAqvipEx6XQDJplP2EXMot3ApjOZJ3nGGtsGHrHLOdLDx@W5LfefhmbxB/ApWyIwWs6tjJcTtP4ouxYZIilP2dWLkOQkJNiUVCWLfJyNVi5cBFMOY3uFceO1KcMG8F4y9GsQoS7YdTLhlmOePaSuldwIFVp2jDbXQy4WijVkdMH66bdYDTLiOyhSBd9FLDiDDq8eKAf9/Mkqtb28EvYxcKWBSdtAcx4T7Ti2dW8MJsAd84btvL1TazS3HOdq1Um4Hs1xsjmPzKh@1aM7Hl25wzbjrfLpwqVCsCKYudrlujbcpgytpekmzTRhogH/uiu3nDHnk1dkRLKplSmWH6Xtl7sRTx41QhqeUcM2oc92EcOKE42Xzc/GNEk0B2IMycmEbITszi2PXCZK0E6jskv1WqNimcMxs@nMIy4hYikkEBOsXfepn1sGi/IvZPC/6ZlkJGJhvC8zEW1dxkR8wZ5hcSlWjoBOWA7kxJWkJGMgDgJbt2KXqUYIKbvu@flf
Давайте течь от "Algol-68".
+1
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int main(void)
{
uint32_t a = 24804541;
for(size_t i = 0; i < 5; i++)
{
for(size_t j = 0; j < 5; j++)
{
putchar( "01"[(a >> (i*5 + j)) & 1]);
}
putchar('\n');
}
return EXIT_SUCCESS;
}
https://ru.wikipedia.org/wiki/Параграф_86а_Уголовного_кодекса_Германии
> В 1998 году суд Франкфурта-на-Майне своим решением запретил распространение компьютерных игр, в которых содержится какая-либо нацистская символика — прецедентом стала игра Wolfenstein 3D. Немецкие локализаторы вынуждены были заменять в играх нацистскую символику на другие символы, не попадающие под нарушение параграфа 86а Уголовного кодекса Германии.
Предлагаю запретить число 24804541.
0
class SqlXssFilter {
private static $sql_keywords = array(
'ADD',
'ADD CONSTRAINT',
'ALTER',
'ALTER COLUMN',
'ALTER TABLE',
'ALL',
'AND',
'ANY',
'AS',
'ASC',
'BACKUP DATABASE',
'BETWEEN',
'CASE',
'CHECK',
'COLUMN'
'CONSTRAINT',
'CREATE',
'CREATE DATABASE',
'CREATE INDEX',
'CREATE OR REPLACE VIEW',
'CREATE TABLE',
'CREATE PROCEDURE',
'CREATE UNIQUE INDEX',
'CREATE VIEW',
'DATABASE',
'DEFAULT',
'DELETE',
'DESC',
'DISTINCT',
'DROP',
'DROP COLUMN',
'DROP CONSTRAINT',
'DROP DATABASE',
'DROP DEFAULT',
'DROP INDEX',
'DROP TABLE',
'DROP VIEW',
'EXEC',
'EXISTS',
'FOREIGN KEY',
'FROM',
'FULL OUTER JOIN',
'GROUP BY',
'HAVING',
'IN',
'INDEX',
'INNER JOIN',
'INSERT INTO',
'INSERT INTO SELECT',
'IS NULL',
'IS NOT NULL',
'JOIN',
'LEFT JOIN',
'LIKE',
'LIMIT',
'NOT',
'NOT NULL',
'OR',
'ORDER BY',
'OUTER JOIN',
'PRIMARY KEY',
'PROCEDURE',
'RIGHT JOIN',
'ROWNUM',
'SELECT',
'SELECT DISTINCT',
'SELECT INTO',
'SELECT TOP',
'SET',
'TABLE',
'TOP',
'TRUNCATE TABLE',
'UNION',
'UNION ALL',
'UNIQUE',
'UPDATE',
'VALUES',
'VIEW',
'WHERE'
);
// XSS and SQL-inject filter
public static function filterInputData(&$str) {
// remove html tags
$res = strip_tags($str);
$res = str_replace(self::sql_keywords, "", $str);
return $res;
}
}
Сойдет.
0
string str = "abcd";
textBox.Text = Convert.ToString(str);
Кратко об одногруппниках
−2
<?php
§nemyx = "kokoko";
echo §nemyx;
Какой анскилл )))
+3
using System;
// Интерфейс места содержит координату его расположения
interface IPlace { long Distance { get; } }
// Интерфейс "двигатель" имеет его мощность
interface IEngine { float Power { get; } }
// Интерфейс Транспорт содержит двигатель и функция расчета времени на путь к определенному месту
interface IVehicle { IEngine Engine { get; } float TimeToTrip(IPlace place); }
// Интерфейс человека, имеющего дом и какой-либо транспорт
interface IPerson { IPlace Home { get; } IVehicle Vehicle { get; } }
// Описываем некоторые классы, реализующие интерфейс места
class Home : IPlace { public long Distance => 0; } // Класс дома, расположенного в начале координат
class Work : IPlace { public long Distance => 100; } // Класс рабочего офиса и расстояние до него
class School : IPlace { public long Distance => 58; } // Класс школы. Она расположена ближе к началу
// Петя -- это рабочий человек, ездящий на работу на автомобиле
class Petya : IEngine, IVehicle, IPerson
{
IVehicle car; // автомобиль
IEngine engine; // двигатель внешнего сгорания
IPlace home; // Петин дом
public float Power => 80f; // максимальная мощность двс в км/ч
public IEngine Engine => engine; // возвращаем двигатель авто
public IPlace Home => home; // возвращаем Петин дом
public IVehicle Vehicle => car; // возвращаем авто как транспорт
// Рассчитываем время, требуемое на путь
public float TimeToTrip(long distance) => distance / Engine.Power;
public float TimeToTrip(IPlace place) => TimeToTrip(place.Distance - home.Distance);
// Конструктор Пети, принимающий транспорт и его двигатель
public Petya(IEngine engine, IVehicle vehicle)
{ car = vehicle; this.engine = engine; }
// Конструктор, задающий Петин дом
public Petya(IPlace place = null)
{ // Если дома нет, создаем его сами
home = place ?? new Home();
car = this; engine = this;
}
}
// Иван -- школьник, он ездит в школу на велосипеде
class Ivan : IEngine, IVehicle, IPerson
{
IVehicle bike; // Ваня ездит на велосипеде
IEngine legs; // в качестве двигателя выступают Ванины ноги
IPlace home; // дом Вани
public float Power => 15f; //максимальная скорость Ваниных ног в к/мч
public IEngine Engine => legs; // возвращаем ноги в виде двигателя
public IPlace Home => home; // возвращаем Ванин дом
public IVehicle Vehicle => bike; // возвращаем велосипед как транспорт
// Рассчитываем время, требуемое на путь
public float TimeToTrip(long distance) => distance / Engine.Power;
public float TimeToTrip(IPlace place) => TimeToTrip(place.Distance - home.Distance);
// Конструктор Вани, принимающий транспорт и его двигатель
public Ivan(IEngine engine, IVehicle vehicle)
{ bike = vehicle; legs = engine; }
// Конструктор, задающий Ванин дом
public Ivan(IPlace place = null)
{ // Если дома нет, создаем его сами
home = place ?? new Home();
bike = this; legs = this;
}
}
class InterfacesLesson
{
// Вспомогательный метод для вывода на экран нужной нам информации
static void PrintInfo(IPerson person, IPlace place)
{
Console.WriteLine("{0} едет из {1} в {2} за {3:f2} ч.",
person, person.Home, place, person.Vehicle.TimeToTrip(place));
}
static void Main()
{
IPlace // Создаем несколько мест
home = new Home(),
work = new Work(),
school = new School();
IPerson // Создаем несколько людей
petya = new Petya(),
ivan = new Ivan(),
egor = new Ivan(school);
// Проверяем, кто за какое время добирается к нужному месту
PrintInfo(petya, home);
PrintInfo(petya, work);
PrintInfo(ivan, school);
PrintInfo(egor, work);
PrintInfo(egor, home);
Console.ReadLine();
}
}
Вот таким примером учат в одном известном ВУЗе интерфейсам...
+1
switch (true)
{
}
0
В "PHP" одинарные кавычки быстрее, чем двойные.
https://habr.com/ru/company/alfa/blog/447416/
Какой анскилл )))