- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
function foo(x = class { static prop: string }): string {
return undefined;
}
function main() {
foo(class { static prop = "hello" }).length;
print("done.");
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−1
function foo(x = class { static prop: string }): string {
return undefined;
}
function main() {
foo(class { static prop = "hello" }).length;
print("done.");
}
ну что С/C++ скушали? а ты так можешь говнокодить?
−1
class Node<T> {
v: T;
k: string;
next: Node<T>;
}
class Map<T> {
head: Node<T>;
getElt(k: string): T {
return mapGet(this, k)
}
setElt(k: string, v: T) {
mapSet(this, k, v)
}
}
function mapSet<T>(m: Map<T>, k: string, v: T) {
for (let p = m.head; p != null; p = p.next) {
if (p.k == k) {
p.v = v
return
}
}
let n = new Node<T>()
n.next = m.head
n.k = k
n.v = v
m.head = n
}
function mapGet<T>(m: Map<T>, k: string): T {
for (let p = m.head; p != null; p = p.next) {
if (p.k == k) {
return p.v
}
}
return null
}
function search_array<T>(a: T[], item: T): number {
for (let i = 0; i < a.length; i++) {
if (a[i] == item) {
return i
}
}
return -1 // NOT FOUND
}
class MyMap<K, V> {
keys: K[]
values: V[]
constructor() {
this.keys = []
this.values = []
}
push(key: K, value: V) {
this.keys.push(key)
this.values.push(value)
}
value_for(key: K): V {
let i = search_array(this.keys, key)
if (i == -1) {
return null
}
return this.values[i]
}
key_for(value: V): K {
let i = search_array(this.values, value)
if (i == -1) {
return null
}
return this.keys[i]
}
set(key: K, value: V): void {
let i = search_array(this.keys, key)
if (i == -1) {
this.keys.push(key)
this.values.push(value)
} else {
this.values[i] = value
}
}
has_key(key: K): boolean {
return search_array(this.keys, key) != -1
}
has_value(value: V): boolean {
return search_array(this.values, value) != -1
}
}
Срочно нужна помощь... не могу решить что делать с функцией mapGet .. когда T - number я не могу использовать "null" .. должен я хакнуть компилятор или изменить тестовый пример?
−1
function testGenRef<T>(v: T) {
let x = v
// test that clear() also gets generalized
function clear() {
print(x);
x = null
}
clear()
}
function testGenRefOuter() {
print("testGenRefOuter");
testGenRef(12)
testGenRef("fXa" + "baa")
}
function main()
{
testGenRefOuter()
print("done.")
}
ну что дорогие мои С/C++ девелоперы.. не ожидали такой подставы... а нука давай свой код на С - С++...
0
function test<T>(t: T)
{
return t;
}
function main()
{
print(test(10), test("Hello"));
print("done.");
}
ура ура.. новая говно-фича подоспела.. а вы думали я тут бездельничаю.. новый год встречаю?
0
function test<T>(t: T) {
return t;
}
function main() {
print(test<number>(11), test<string>("Hello1"));
print("done.");
}
Продолжаем генерить говно... ну вот подъехали первые генерики для функций... толи еще будет гимороя :)
−3
Астрологи объявили неделю getCurrentLanguageName();
0
class Node<T> {
v: T;
k: string;
next: Node<T>;
}
function main()
{
let n = new Node<number>()
n.next = n
n.k = "Hello";
n.v = 10.0;
print("done.");
}
Вы не поверите как сложно сделать простые вещи в LLVM. встречаем рекурсивные типы :)
−1
const files = {
"main.pcg": "funcTion text print hello;startFunction text;"
};
const functions = {};
const values = {};
function startc(text) {
var code = text.trim();
let strings = code.split(";");
for(var i = 0; i < strings.length; i++) {
let currentString = strings[i];
let words = currentString.split(" ");
if(words[0].toLowerCase() == "print") {
console.log(words[1]);
};
if(words[0].toLowerCase() == "printValue") {
console.log(values[words[1]]);
};
if(words[0].toLowerCase() == "value") {
values[words[1]] = words[2];
};
if(words[0].toLowerCase() == "ws") {
values[words[1]] = new WebSocket(words[2]);
};
if(words[0].toLowerCase() == "printcycle") {
for(var i = 0; i < words[1]; i++) {
console.log(words[2]);
};
};
if(words[0].toLowerCase() == "function") {
functions[words[1]] = words[2] + " " + words[3];
};
if(words[0].toLowerCase() == "startfunction") {
startc(functions[words[1]]);
};
};
};
function start(file) {
startc(files[file]);
};
0
interface I<T> {
foo(x: number): T;
}
interface A extends I<number>/*, I<string>*/ { }
class AI
{
foo(x: number) { return x; }
}
function main()
{
let x: A = new AI();
const r = x.foo(1); // no error
//const r2 = x.foo(''); // error
print("done.");
}
ура... первая имплементация generic интерфейса... ну с почином на генериках
−2
window.spam = (function () {
function spam (els) {
}
var spam = {
get: function (selector) {
}
};
return spam;
}());
govnokodishe!