- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
for(int c = 0; c < 2; ++c)
{
if(c)
{
// do something
}
else
{
// do something else
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
for(int c = 0; c < 2; ++c)
{
if(c)
{
// do something
}
else
{
// do something else
}
}
Одна из причин необходимости разворачивания циклов.
+7
$guid = @sprintf("%X%X%X%X%X%X%X%X-%X%X%X%X-%X%X%X%X-%X%X%X%X-%X%X%X%X%X%X%X%X%X%X%X%X",
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16,
@rand() % 16);
+129
<macrodef name="foreach">
<attribute name="target"/>
<attribute name="file-property"/>
<element name="files"/>
<element name="args"/>
<sequential>
<local name="foreach.files"/>
<local name="foreach.target"/>
<local name="foreach.file-property"/>
<local name="foreach.args"/>
<property name="foreach.target" value="@{target}"/>
<property name="foreach.file-property" value="@{file-property}"/>
<pathconvert property="foreach.files">
<files/>
</pathconvert>
<propertyset id="foreach.args">
<args/>
</propertyset>
<property name="foreach.args" refid="foreach.args"/>
<property name="foreach.target" value="@{target}"/>
<!-- there is no better way to do this at the moment
property names and values should not contain comma-space and equals signs
-->
<script language="javascript"><![CDATA[
var files = project.getProperty("foreach.files").split(":"),
args = project.getProperty("foreach.args").split(", "),
task = project.createTask("antcall"), arg;
task.target = project.getProperty("foreach.target");
for (var a in args) {
arg = task.createParam();
arg.setName(a.split("=")[0]);
arg.setValue(String(a.split("=")[1]));
}
for (var f in files) {
arg = task.createParam();
arg.setName(project.getProperty("foreach.file-property"));
arg.setValue(String(files[f]));
task.perform();
}
]]></script>
</sequential>
</macrodef>
<!-- пример использования: -->
<target name="transcode-font-helper">
<property name="font.face.local" value="${font.face}"/>
<foreach target="transcode-font" file-property="font.raw.source">
<files>
<fileset dir="${basedir}/fonts">
<include name="*/${font.face.local}/*.otf"/>
<include name="*/${font.face.local}/*.ttf"/>
</fileset>
</files>
<args>
<propertyref name="font.face.local"/>
</args>
</foreach>
</target>
А ведь если подумать: собрали все самое лучше, что есть в современном программировании - Ява, ХМЛ и ж.скрипт. Потом выбросили условные операторы, итерацию и операции со строкам - потому что не нужны. И получилась замечательная система для сборки проектов.
+70
QString windoliz_path(QString str)
{
/*
функция "виндолизирует" QTшные пути, для передачи в неQTшные части проги
(в QT-шные, кстати тоже можно, ибо QT вроде бы понимает и те и другие ;)
если вызвать вне винды ничо страшного, предпроцессор сделает всё за вас
и функция вернёт ту же строку что и получила. После вызова в виндах не
помешает сделать .toLocal8Bit()
//*/
#ifdef _WIN32 //если венда
char s = '\\'; //символ для замены
char t = '/'; //шаблон поиска
for (int i = str.size();i;i--) //повторить столько раз сколько символов в строке
{
if (str[i-1] == t) //если символ соответствует образцу поиска
{
str[i-1] = s; //меняем на образец замены
}
}
#endif //директива отметы условия "если венда"
return str;
}
Этот проект не перестаёт удивлять... апи не смотри, велосипеды пиши. Коммент сохранен авторский.
−87
while ([self string:[commentText copy] containsString:@"<br>"]) {
commentText = [commentText stringByReplacingOccurrencesOfString:@"<br>" withString:@"/n"];
}
No comments :)
+69
#define BYTEMAX 0xFF
#define BYTEOVERFLOW (BYTEMAX+1)
C++ вокруг. Интересует насколько это вменяемая практика?
+139
public class Switch
{
public Switch(object switchElement)
{
Object = switchElement;
}
public object Object{get; private set; }
}
public static class SwitchExtensions
{
public static Switch Case<T>(this Switch switchCase, Func<T, bool> isTrue, Action<T> action) where T : class
{
return Case(switchCase, isTrue, action, false);
}
public static Switch Case<T>(this Switch switchCase, Func<T, bool> isTrue, Action<T> action, bool fallThrough) where T : class
{
if (switchCase == null)
return null;
var obj = switchCase.Object as T;
if (obj != null)
if (isTrue(obj))
{
action(obj);
return fallThrough ? switchCase : null;
}
return switchCase;
}
}
//пример использования
IImporter<AccountModel> result = null;
new Switch(type)
.Case<string>(x => x == ".xls", y => result = new ExcelImporter())
.Case<string>(x => x == ".csv", y => result = new CsvImporter());
return result;
У нас будет свой Switch/Case с преферансом, куртизанками и экстеншен методами
+144
;(function ($) {
// alias Math methods - used a lot!
var min = Math.min
, max = Math.max
, round = Math.floor
lol
+102
var usr = Enumerable.Range(1, 1)
.Select(id => new User(1, "FooBar", "desc" + 1, DateTime.UtcNow))
.ToReadonly()
.GetRandomElement();
Из юнит-теста. Копипаста рождает чудовищ.
+162
.replace(/😊/g,'<img src="http://vk.com/images/emoji/D83DDE0A.png">')
.replace(/😃/g,'<img src="http://vk.com/images/emoji/D83DDE03.png">')
.replace(/😆/g,'<img src="http://vk.com/images/emoji/D83DDE06.png">')
.replace(/😉/g,'<img src="http://vk.com/images/emoji/D83DDE09.png">')
.replace(/😜/g,'<img src="http://vk.com/images/emoji/D83DDE1C.png">')
.replace(/😋/g,'<img src="http://vk.com/images/emoji/D83DDE0B.png">')
.replace(/ðŸ˜/g,'<img src="http://vk.com/images/emoji/D83DDE0D.png">')
.replace(/😎/g,'<img src="http://vk.com/images/emoji/D83DDE0E.png">')
.replace(/😒/g,'<img src="http://vk.com/images/emoji/D83DDE12.png">')
.replace(/ðŸ˜/g,'<img src="http://vk.com/images/emoji/D83DDE0F.png">')
.replace(/😔/g,'<img src="http://vk.com/images/emoji/D83DDE14.png">')
.replace(/😢/g,'<img src="http://vk.com/images/emoji/D83DDE22.png">')
.replace(/ðŸ˜/g,'<img src="http://vk.com/images/emoji/D83DDE2D.png">')
.replace(/😩/g,'<img src="http://vk.com/images/emoji/D83DDE29.png">')
.replace(/😨/g,'<img src="http://vk.com/images/emoji/D83DDE28.png">')
.replace(/ðŸ˜/g,'<img src="http://vk.com/images/emoji/D83DDE10.png">')
.replace(/😌/g,'<img src="http://vk.com/images/emoji/D83DDE0C.png">')
.replace(/😠/g,'<img src="http://vk.com/images/emoji/D83DDE20.png">')
.replace(/😡/g,'<img src="http://vk.com/images/emoji/D83DDE21.png">')
.replace(/😇/g,'<img src="http://vk.com/images/emoji/D83DDE07.png">')
.replace(/😰/g,'<img src="http://vk.com/images/emoji/D83DDE30.png">')
.replace(/😲/g,'<img src="http://vk.com/images/emoji/D83DDE32.png">')
.replace(/😳/g,'<img src="http://vk.com/images/emoji/D83DDE33.png">')
.replace(/😷/g,'<img src="http://vk.com/images/emoji/D83DDE37.png">')
.replace(/😚/g,'<img src="http://vk.com/images/emoji/D83DDE1A.png">')
.replace(/😈/g,'<img src="http://vk.com/images/emoji/D83DDE08.png">')
.replace(/â¤/g,'<img src="http://vk.com/images/emoji/2764.png">')
.replace(/ðŸ‘/g,'<img src="http://vk.com/images/emoji/D83DDC4D.png">')
.replace(/👎/g,'<img src="http://vk.com/images/emoji/D83DDC4E.png">')
.replace(/â˜/g,'<img src="http://vk.com/images/emoji/261D.png">')
.replace(/✌/g,'<img src="http://vk.com/images/emoji/270C.png">')
.replace(/👌/g,'<img src="http://vk.com/images/emoji/D83DDC4C.png">')
Моя реализация обработки смайликов из VK. Это потом уже голова стала соображать и всё заменилось регуляркой с функцией.