- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
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" .. должен я хакнуть компилятор или изменить тестовый пример?
ASD__77 # 0
guest # 0
guest # 0 ⇈
Как йажа не надо
ASD_77 # 0 ⇈
Floating_cockerel # 0 ⇈
guest # 0 ⇈
Коля любит Намба
Толя любит Намба
Floating_cockerel # 0 ⇈
HoBorogHuu_nemyx # 0 ⇈
HoBorogHuu_nemyx # 0 ⇈
ASD__77 # 0 ⇈
Floating_cockerel # 0 ⇈
guest # 0 ⇈
Я думал ты серьезный язык делаегшь, а ты копируешь поведение жопаскрипта
ASD__77 # 0 ⇈
Floating_cockerel # 0 ⇈
guest # 0 ⇈
ASD__77 # 0 ⇈
ASD__77 # 0 ⇈
guest # 0 ⇈
А вот как представить неисчисляемое?
bormand # 0 ⇈
guest # 0 ⇈
Kozel # 0 ⇈
Правда, если тип должен быть примитивным, на этом мои полномочия всё.
UPD: а потом я разглядел слово "предела"
ASD__77 # 0 ⇈
type float64 = TypeOf<1.0>
Floating_cockerel # 0 ⇈
ASD__77 # 0 ⇈
ASD__77 # 0
ASD__77 # 0
[email protected] # 0 ⇈
Floating_cockerel # 0 ⇈
guest # 0 ⇈
Нырнул, и рыба застряла во рту
ASD__77 # 0 ⇈
Мистер Хэнки # 0