Node.js a multiplexed IO obecně

čumil

Re:Node.js a multiplexed IO obecně
« Odpověď #150 kdy: 02. 05. 2017, 14:31:21 »
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 »
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 »
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: 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 »
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 »
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 »
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í?

Kód: [Vybrat]
(x == x) !=  (!x == !x)

Re:Node.js a multiplexed IO obecně
« Odpověď #157 kdy: 02. 05. 2017, 14:44:40 »
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 »
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).

Kód: [Vybrat]
!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 »
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 »
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 »
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 »
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 »
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 »
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.