Node.js a multiplexed IO obecně

čumil

Re:Node.js a multiplexed IO obecně
« Odpověď #150 kdy: 02. 05. 2017, 14:31:21 »
Citace od: gll kdy 02. 05. 2017, 14:23:57
Citace od: Mirek Prýmek kdy 02. 05. 2017, 14:10:07
Citace
(x == x) !=  (!x == !x)
je nade vší pochybnost blb.

pro kterou hodnotu tohle platí?
Pro boxed booleany treba.

Zdejsi garda nechce pochopit ze == se proste chova jinak nad objekty a jinak nad primitives.


Re:Node.js a multiplexed IO obecně
« Odpověď #151 kdy: 02. 05. 2017, 14:34:50 »
Citace od: čumil kdy 02. 05. 2017, 14:31:21
Zdejsi garda nechce pochopit ze == se proste chova jinak nad objekty a jinak nad primitives.
Ty jsi takový blb, že ani nevíš, že se tak chová i ===?

Proč se vyjadřuješ o něčem, o čem nic nevíš?

Re:Node.js a multiplexed IO obecně
« Odpověď #152 kdy: 02. 05. 2017, 14:37:21 »
Citace od: gll kdy 02. 05. 2017, 14:29:52
Podle me jsi to nepochopil ty, == porovnává reference
A === porovnává identity.

Čili, jak každý ne-blb ví, platí to, co jsem napsal, pro oba :)

Inkvizitor

Re:Node.js a multiplexed IO obecně
« Odpověď #153 kdy: 02. 05. 2017, 14:39:24 »
Citace od: čumil kdy 02. 05. 2017, 14:28:13
Citace od: Inkvizitor kdy 02. 05. 2017, 14:18:18
Citace od: Mirek Prýmek link=topic=15324.msg210554#msg210554 Jistě. Kdo nechápe, že
Citace
(x == x) !=  (!x == !x)
je nade vší pochybnost blb.

Nejlepsi je, ze tyhle prasarny (a ano, vim, proc to tak asi je - unboxing boolu operatorem "not"), ale je to jasna prasarna) se budou ted decka ucit na skolach. Takze uz jim to bude pripadat normalni.
Not nic neunboxuje omg.
Boxed boolean je objekt dozadeke uz.
Jak mezi idiotama...

Jasne, ze unboxuje. Z objektu udela primitivni typ s opacnou hodnotou. To je na tebe ale asi moc slozite pochopit, kdyz se to nepoda polopate, co?

gll

Re:Node.js a multiplexed IO obecně
« Odpověď #154 kdy: 02. 05. 2017, 14:41:13 »
Citace od: Inkvizitor kdy 02. 05. 2017, 14:39:24
Jasne, ze unboxuje. Z objektu udela primitivni typ s opacnou hodnotou. To je na tebe ale asi moc slozite pochopit, kdyz se to nepoda polopate, co?

negace objektu je false. Nic to neunboxuje.


Re:Node.js a multiplexed IO obecně
« Odpověď #155 kdy: 02. 05. 2017, 14:42:33 »
Citace od: gll kdy 02. 05. 2017, 14:41:13
negace objektu je false. Nic to neunboxuje.
Tak pořád ještě můžeme být rádi, že to není třeba 3, že :)

Je potřeba mít k životu optimistický přístup! :))

gll

Re:Node.js a multiplexed IO obecně
« Odpověď #156 kdy: 02. 05. 2017, 14:43:20 »
Citace od: Mirek Prýmek kdy 02. 05. 2017, 14:37:21
Citace od: gll kdy 02. 05. 2017, 14:29:52
Podle me jsi to nepochopil ty, == porovnává reference
A === porovnává identity.

Čili, jak každý ne-blb ví, platí to, co jsem napsal, pro oba :)

ještě jednou. pro kterou hodnotu x tohle platí?


(x == x) !=  (!x == !x)


Re:Node.js a multiplexed IO obecně
« Odpověď #157 kdy: 02. 05. 2017, 14:44:40 »
Citace od: gll kdy 02. 05. 2017, 14:43:20
ještě jednou. pro kterou hodnotu x tohle platí?
Nepsal jsem, že x je hodnota. x je výraz.

SB

Re:Node.js a multiplexed IO obecně
« Odpověď #158 kdy: 02. 05. 2017, 14:44:52 »
Citace od: čumil kdy 02. 05. 2017, 13:16:28
Tady je někdo kreten.
Jazyk to nebude.

Víš, je rozdíl mezi false a new Boolean(false).
To první je unboxed primitive value a to druhé je boxed primtive value.
To boxed znamená že je to objekt s vlastním prototypem.
Což znamená že == a === porovnává reference nikoli primitivní hodnoty.
Když na boxed boolean aplikuješ negaci, vyjde ti vždycky false protože negace objektu je vždycky false (protože každý objekt mimo null je přetypovatelný na true).

!new Boolean(true) === !new Boolean(false)
ti vyjde jako true.

A opět, neni to divnost jazyka, je to jenom kompletní ignorace se ho alespoň v mezích naučit.
TEČKA.

Máte recht, už jsem si to ověřil a je to tak - negace neprování nejprve unboxing (jak bych čekal, když se javaskriptaři tolik prsí transparentností boxingu/unboxingu), ale bere to přednostně jako onu "negaci" objektu. Moje nepozornost. Otázkou zůstává, zda je nutno takovýmto věcem věnovat energii. Asi to není jazyk pro mě.

Váš popis == a === nechápu, jejich funkčnost jsme tu rozebrali pár příspěvků zpět.

Je dobře, že se v JS dobře orientujete, protože nám můžete vysvětlit podstatu onoho výsledku

> new Boolean(true) == new Boolean(true)
false


A příště to zkuste slušněji.

gll

Re:Node.js a multiplexed IO obecně
« Odpověď #159 kdy: 02. 05. 2017, 14:49:07 »
Citace od: SB kdy 02. 05. 2017, 14:44:52
Je dobře, že se v JS dobře orientujete, protože nám můžete vysvětlit podstatu onoho výsledku

> new Boolean(true) == new Boolean(true)
false


A příště to zkuste slušněji.

Porovnáváte reference dvou různých objektů. Je to stejná záludnost jako porovnávání stringů v Javě.

SB

Re:Node.js a multiplexed IO obecně
« Odpověď #160 kdy: 02. 05. 2017, 14:49:57 »
Citace od: čumil kdy 02. 05. 2017, 14:28:13
Citace od: Inkvizitor kdy 02. 05. 2017, 14:18:18
Not nic neunboxuje omg.
Boxed boolean je objekt dozadeke uz.
Jak mezi idiotama...

Že používají objektové jazyky objekty, bych pochopil, ale na co jsou jim primitiva (s následnou komplikací včetně "boxingu"), jsem ještě nepochopil.

SB

Re:Node.js a multiplexed IO obecně
« Odpověď #161 kdy: 02. 05. 2017, 14:56:49 »
Citace od: gll kdy 02. 05. 2017, 14:49:07
Citace od: SB kdy 02. 05. 2017, 14:44:52
Je dobře, že se v JS dobře orientujete, protože nám můžete vysvětlit podstatu onoho výsledku

> new Boolean(true) == new Boolean(true)
false


Porovnáváte reference dvou různých objektů. Je to stejná záludnost jako porovnávání stringů v Javě.

Měl jsem za to, že identity (reference) se srovnávají s ===, == je ekvivalence (obdoba), kterou má Boolean (logicky) překrytou. Opět mi něco ušlo?

gll

Re:Node.js a multiplexed IO obecně
« Odpověď #162 kdy: 02. 05. 2017, 15:09:56 »
Citace od: SB kdy 02. 05. 2017, 14:56:49
Citace od: gll kdy 02. 05. 2017, 14:49:07
Citace od: SB kdy 02. 05. 2017, 14:44:52
Je dobře, že se v JS dobře orientujete, protože nám můžete vysvětlit podstatu onoho výsledku

> new Boolean(true) == new Boolean(true)
false


Porovnáváte reference dvou různých objektů. Je to stejná záludnost jako porovnávání stringů v Javě.

Měl jsem za to, že identity (reference) se srovnávají s ===, == je ekvivalence (obdoba), kterou má Boolean (logicky) překrytou. Opět mi něco ušlo?

== nejde překrýt. Kdyby to šlo, tak byste to považovali za magii a nadávali na to, protože je v módě kopnout si do javascriptu a skriptovacích jazyků obecně.


Re:Node.js a multiplexed IO obecně
« Odpověď #163 kdy: 02. 05. 2017, 15:12:05 »
Citace od: gll kdy 02. 05. 2017, 15:09:56
Citace od: SB kdy 02. 05. 2017, 14:56:49
Citace od: gll kdy 02. 05. 2017, 14:49:07
Citace od: SB kdy 02. 05. 2017, 14:44:52
Je dobře, že se v JS dobře orientujete, protože nám můžete vysvětlit podstatu onoho výsledku

> new Boolean(true) == new Boolean(true)
false


Porovnáváte reference dvou různých objektů. Je to stejná záludnost jako porovnávání stringů v Javě.

Měl jsem za to, že identity (reference) se srovnávají s ===, == je ekvivalence (obdoba), kterou má Boolean (logicky) překrytou. Opět mi něco ušlo?

== nejde překrýt. Kdyby to šlo, tak byste to považovali za magii a nadávali na to, protože je v módě kopnout si do javascriptu a skriptovacích jazyků obecně.

Mno je to rekneme nestastne a ze to je podobne nestastne v Jave moc dobra omluva neni...

Re:Node.js a multiplexed IO obecně
« Odpověď #164 kdy: 02. 05. 2017, 15:14:51 »
Citace od: Ondra Satai Nekola kdy 02. 05. 2017, 15:12:05
Mno je to rekneme nestastne a ze to je podobne nestastne v Jave moc dobra omluva neni...
V javě to ale afaik takhle nešťastné není, tam == porovnává identity, .equal(x) hodnoty (a dá se překrýt) a u obojího jsou dodržena (nebo mají být dodržena) pravidla relace ekvivalence, takže žádný problém není, ne?

Srovnání s == pro String v javě je dost mimo mísu imho.