- 1
- 2
- 3
- 4
- 5
- 6
- 7
package main
func main() {
var str = "Hello World"
var length = len([]rune(str))
println("Length of the string is :", length)
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−2
package main
func main() {
var str = "Hello World"
var length = len([]rune(str))
println("Length of the string is :", length)
}
String Length in Golang
To get the length of a String in Go programming, convert the string to array of runes, and pass this array to len() function.
−1
function* foo2() {
yield 2;
yield 3;
}
function* foo() {
yield 1;
yield* foo2();
yield 4;
}
function main() {
for (const o of foo()) {
print(o);
}
print("done.");
}
продолжаем "наговнокодить". Добавил "елдак" со "звездой". Где тут наши препроцессорописатели.. дайте аналог на C/C++.
+1
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int perevod(char a)
{
switch (a)
{
case 'A': {return 1; break;}
case 'B': {return 2; break;}
case 'C': {return 3; break;}
case 'D': {return 4; break;}
case 'E': {return 5; break;}
case 'F': {return 6; break;}
case 'G': {return 7; break;}
case 'H': {return 8; break;}
}
return 0;
}
int proverka(char a)
{
switch (a)
{
case '1': {return 1; break;}
case '2': {return 2; break;}
case '3': {return 3; break;}
case '4': {return 4; break;}
case '5': {return 5; break;}
case '6': {return 6; break;}
case '7': {return 7; break;}
case '8': {return 8; break;}
}
return 0;
}
int main()
{
string s;
cin >> s;
int x1, x2, y1, y2;
x1=perevod(s[0]);
x2=perevod(s[3]);
y1=proverka(s[1]);
y2=proverka(s[4]);
if(s.length() != 5 || x1 == 0 || x2 == 0 || y1 == 0 || y2 == 0||s[2]!='-')
{
cout << "ERROR";
}
else{
if(abs(x2 - x1) == 1 && abs(y2 - y1) == 2 || abs(x2 - x1) == 2 && abs(y2 - y1) == 1)
{
cout << "YES";
}
else
{
cout << "NO";
}
}
return 0;
}
Простенькая проверка на возможность хода конем.
0
#include "pch.h"
#include <iostream>
using namespace std;
struct _Point {
double x, y, z;
};
void setPoint(_Point &, double = 0, double = 0, double = 0);
void outPoint(const _Point &, char);
int main()
{
_Point A, B, C, D;
setPoint(A, 1, 5, 6.78);
setPoint(B);
setPoint(C, 8);
setPoint(D, 3, 4);
outPoint(A,'a');
outPoint(B,'b');
outPoint(C,'c');
outPoint(D,'d');
}
void setPoint(_Point &name, double a, double b, double c) {
name.x = a;
name.y = b;
name.z = c;
}
void outPoint(const _Point &name,char ch) {
cout <<ch<< "(" << name.x << ", " << name.y << ", " << name.z << ")\n";
}
0
[code]
____ _____ _____ ____ _____ ___ ____ _ _ _____
/ ___|_ _| ____| _ \_ _/ _ \| _ \ | | | | ____|
| | | | | _| | |_) || || | | | |_) | | |_| | _|
| |___ | | | |___| __/ | || |_| | __/ | _ | |___
\____| |_| |_____|_| |_| \___/|_| |_| |_|_____|
_ _ __ _ _______ _ _
| | | |_ _\ \| |/ / ____| | | |
| |_| | | | |\ \ / /| _| | |_| |
| _ | |_| |/ / \ \| |___| _ |
|_| |_|\__, /_/| |\_\_____|_| |_|
|___/ |_|
[/code]
−1
// вообще, есть одна говнистая особенность сишки:
// нельзя вернуть из функции массив хуйпойми какой длины, выделив память чисто на стеке
// Вот например:
char *a_ret (size_t len)
{
char *ret = alloca(len);
memset(ret, 'a', len);
return ret; // так нельзя
}
// т.е. надо делать как-нибудь вот так
char *a_ret (size_t len)
{
char *ret = malloc(len);
if (ret == NULL)
{
exit(ENOMEM);
}
memset(ret, 'a', len);
return ret;
}
Но это ж на самом-то деле говно какое-то. Дергать аллокаторы какие-то, ради каких-то мелких кусков байтиков.
Почему не сделать хуйни, чтоб вызываемая функция как бы приосталавливалась и просила ту функцию, которая ее вызывает, чтоб она вот такой-то alloca() сделала нужного размера в своем стекфрейме, а потом туда вот та вызванная функция байтики уже вхерачивала? Ну т.е. можно сделать отдельный свой стек для локальных переменных тех функций, которые должны уметь такую хуйню делать (т.е. просить вызвавшую их функцию "а сделай ка там себе alloca(123) и дай мне указатель, а я в него насру")
Вообще хуйня какая-то, сишка слишком сильно сковывает всякой своей хуйней, соглашениями вызовов, всякими ABI там. То ли дело ассемблер!
+2
#include <conio.h>
static unsigned char bigArray[256] = {['0'] = 0, ['1'] = 1, ['2'] = 2, ['3'] = 3,
['4'] = 4, ['5'] = 5, ['6'] = 6, ['7'] = 7,
['8'] = 8, ['9'] = 9, ['A'] = 10, ['B'] = 11,
['C'] = 12, ['D'] = 13, ['E'] = 14, ['F'] = 15 };
void StringToByte(const char src[], unsigned char dst[])
{
int q, u = 0;
for (q = 0; src[q]; q+=2)
{
dst[u] = bigArray[src[q]] << 4;
if (!src[q+1])
return;
dst[u++] |= bigArray[src[q+1]];
}
}
int main()
{
char string[] = "112255ACBF";
unsigned char bytes[5];
StringToByte(string, bytes);
int i;
for (i = 0; i!=sizeof(bytes); i++)
printf("%x ", (int)bytes[i]);
return 0;
}
Ебическая С-ла.
+2
https://www.quora.com/As-a-software-engineer-in-your-opinion-what-are-the-biggest-bottlenecks-and-or-inefficiencies-in-programming-today
The key to overcoming this bottleneck, I believe, is live coding, whereby you can inspect and modify code and data while the program is running. Detect a bug? No problem. Immediately inspect the code and data to determine the cause. Make the appropriate changes. Continue execution. No need to save the code, compile the code and rerun the program from the beginning.
оказывается то, что делали пхпшники начала нулевых, правя по FTP в Notepad++ файлы на живом сервере это т.н. "Live coding", и за этим будущее
+1
void Game::Loadlevel(int which){
stealthloading=0;
if(which==0)Loadlevel((char *)":Data:Maps:map1");
else if(which==1)Loadlevel((char *)":Data:Maps:map2");
else if(which==2)Loadlevel((char *)":Data:Maps:map3");
// [...]
}
// [Почему (char *)? Да вот же!]
void Game::Loadlevel(char *name){
int i,j,k,l,m;
static int oldlevel;
int templength;
float lamefloat;
int lameint;
// [...]
}
Ебём const машиной Тьюринга. Всё тот же https://hg.icculus.org/icculus/lugaru/file/97b303e79826/Source/GameTick.cpp , прямо-таки сокровищница с говном.
−2
https://toster.ru/q/315470
Деанон пидара без СМС.