Nadużywanie operatora ===?

Nadużywanie operatora ===?
AS
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:1
1

Co myślicie o modzie, że teraz wszędzie gdzie można pcha się === i !==. Temat zastanawia mnie od dłuższego czasu i wraca co code review. I jak widzę taki przykład

dispatch(setExportTableEnabled(responseJson.status === 200))

to jest mi słabo. Nie uważacie że powinno się używać operatora domyślnego i krótszego ==? W PHP jakoś == jest częściej używany

edytowany 2x, ostatnio: assembler
gk1982
pozwalam można używać, swoja droga czemu nie zmienia tego === na np. z po co tyle znaków wypisuywać
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Silesia/Marki
  • Postów:5505
12
assembler napisał(a):

I jak widzę taki przykład

dispatch(setExportTableEnabled(responseJson.status === 200))

to jest mi słabo.

Czemu jest Ci słabo?

Nie uważacie że powinno się używać operatora domyślnego i krótszego ==?

Nie


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4708
13

Ja tam jestem za tym, żeby było więcej równości.
Im więcej równości tym lepiej.
===============================================


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 2x, ostatnio: jarekr000000
PH
  • Rejestracja:ponad 5 lat
  • Ostatnio:około rok
  • Postów:374
3

po co używać dwóch? można się pomylić, nie lepiej wszędzie używać ===.

Gdzie === sprawdza dodatkowo typ danych

cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:dzień
  • Lokalizacja:Poznań
  • Postów:8802
5

Podstawowe pytanie - w czym to przeszkadza? Możesz jakoś uzasadnić, co w tym złego? Bo ja uważam (podobnie do @phanc powyżej) - taki zapis sprawdza nie tylko wartość, ale typ, więc robi to samo co wersja krótsza, ale jeszcze ma bonus.

No chyba, że ktoś chce porównać wartości, ale nie patrząc na typ - tylko wtedy to nie jest kwestia preferencji, ale odpowiedniego doboru do potrzeb, więc także nie zalicza się to do tematyki tego wątku. W każdym razie - nie widzę niczego złego w zastosowaniu operatora identyczny zamiast równy.


UR
  • Rejestracja:około 5 lat
  • Ostatnio:prawie 3 lata
  • Postów:360
3

A mi słabo, jak widzę mały projekt w reactcie i nawalone reduxy i customowy hooksy do niego.

Kogoś jeszcze coś słabi?

PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
5
jarekr000000 napisał(a):

Ja tam jestem za tym, żeby było więcej równości.

Im więcej równości tym lepiej.
===============================================

To całkiem dobry pomysł. Żeby jeszcze każdy znak równości odpowiadał polu obiektu, byłoby to fajne sprawdzanie całego drzewa. Powiedzmy, że mamy kod

Kopiuj
class Point {
	int x, y;
public:
	Point(): x(0), y(0) {}
};
//---
	auto p1 = Point();
	auto p2 = Point();

	if (p1 ==== p2) {
		cout << "dupa" << endl;
	}

Niech będzie to == jako porównanie referencji plus dodatkowy znak dla każdego kolejnego pola w klasie. Pójdźmy krok dalej i napiszmy kolejną klasę!

Kopiuj
class Rectangle {
	Point corners[4];
public:
	Rectangle() = default;
};
//----

	auto r1 = Rectangle();
	auto r2 = Rectangle();

	if (r1 ============== r2) {
		cout << "dupa" << endl;
	}

Mamy tu dwa standardowe znaki równości + 4 * (referencja + 2 pola). Razem 14 :) .


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Silesia/Marki
  • Postów:5505
0
urke napisał(a):

Kogoś jeszcze coś słabi?

Standardowo. Metody zaczynające się od wielkiej litery i ludzie którzy nie wiedzą że istnieje polimorfizm poza językami OOP


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4708
8
PerlMonk napisał(a):
Kopiuj
	if (r1 ============== r2) {
		cout << "dupa" << endl;
	}

To mi się podoba. Nie dość, że podkreśla równość między r1 i r2 (zdodnie z hasłem: wszystkie rn są równe) to jeszcze zgodne z zasadami dystansu społecznego, ogranicza przenoszenie się zarazków.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 3x, ostatnio: jarekr000000
mr_jaro
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
1

Stosuje się w zależności od potrzeby więc co ci takiego w tym nie tak? to tak jakbyś narzekał, że ktoś czasem da if else czasem ? x : y a czasem ?: y

Aha i w php tez już się zaczyna coraz bardziej to stosować bo tez wchodzi coraz bardziej porządne typowanie.


It's All About the Game.
edytowany 1x, ostatnio: mr_jaro
Zobacz pozostałe 26 komentarzy
bearek
@stivens: nie zmienia to faktu, że to typowanie bardzo pomaga i nie pozwala doprowadzać do katastrofy :)
mr_jaro
@bearek: nie dramatyzuj, do katastrofy to doprowadza brak lub źle napisane testy, a nie brak typowania.
bearek
@mr_jaro: a co ma piernik do wiatraka?
mr_jaro
@bearek: napisałeś, że pomaga nie doprowadzić do katastrofy, ja uważam, że nie ma na to żadnego wpływu.
bearek
@mr_jaro: wszystkiego nie przetestujesz, let's be real. Jest wiele sytuacji, gdzie pomyłka w typowaniu doprowadza do trudnych do znalezienia błędów i metoda zdąży narozrabiać zanim się wykrzaczy na typie.
Schadoow
  • Rejestracja:ponad 13 lat
  • Ostatnio:dzień
  • Postów:1068
4

Nie wiem jak to działa w php ale w js/ts dobrą praktyką jest używanie === bo mało kto rozumie jak działa == co powodowało wiele błędów.
Np dla mnie poniższe odpowiedzi są mało intuicyjne i w gąszczu kodu wątpię abym wyłapał szybko tego typu błędy.

Kopiuj
null == undefined //true
[0] == false //true
[1] == 1 //true
[[]] == "" //true
edytowany 1x, ostatnio: Schadoow
overcq
  • Rejestracja:około 7 lat
  • Ostatnio:około 6 godzin
  • Postów:390
4
assembler napisał(a):

Nie uważacie że powinno się używać operatora domyślnego i krótszego ==?

Ja jestem zwolennikiem mocnych typów danych i uważam, że === jest domyślny.


Nie znam się, ale się wypowiem.
Wizytówka
joh­nny_Be_go­od jest mistrzem ‘eskejpowania’ i osadzania.
bearek
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad rok
  • Postów:85
0

Ja bym chciał, żeby typy były domyślnie sprawdzane z ==, a żeby miękkie sprawdzanie miało jakiś trudniejszy do zapisania operator. Miękkie typowanie doprowadza do baaaardzo wielu trudnych do wychwycenia błędów, szczególnie 0 == ''.

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4708
9

Dla przypomnienia javascript equality table:
js-table.png

fajne rzeczy z tego widać :-)

Kopiuj
[0] == false
true
[0] == [0]
false

Logiczne

Dla porównania - w mniej zaawansowanych językach:
haskell_table.png
tu źródło

(I tu warto zaznaczyć, że to że [] == "" w Haskellu jest uznawane za błąd w designie języka, który niestety trudno teraz odkręcić)


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 5x, ostatnio: jarekr000000
Zobacz pozostały 1 komentarz
PerlMonk
Tabelka od Haskella jest psychodeliczna :D
lgtk
To w js ta tabela nie wygląda jak pitok? 😁
Azarien
@bearek: ten obrazek mówi bardzo wiele. w Haskellu, z nielicznymi wyjątkami, jeśli X nie wygląda jak Y, to X ≠ Y. w JS… chaos.
bearek
@Azarien: no wow, porównujesz język luźno typowany ze ściśle typowanym, więc się nie dziw. Nie bronię JS, ale naiwnie się podniecacie.
Azarien
ja tylko komentuję obrazek. nie używam ani haskella, ani js.
obscurity
  • Rejestracja:około 6 lat
  • Ostatnio:około 12 godzin
2

=== nie tylko stwarza mniej problemów (zwłaszcza gdy porównujemy tablice, undefined, zero, boolean itp) ale też jest szybsze. Jeśli nie chcemy porównywać zmiennych o różnych typach, dane nie przychodzą od usera i nie chcemy niespodziankowego rzutowania typów to lepiej użyć ===

https://jsbench.me/wskgl15rpr/1


"A car won't take your job, another horse driving a car will." - Horse influencer, 1910
edytowany 2x, ostatnio: obscurity
bearek
Nie ma żadnej znaczącej różnicy w szybkości.
obscurity
zależy od przeglądarki, dla tych samych typów na pewno nie. Chrome został zoptymalizowany ostatnio i jest tak samo szybkie, w firefoksie nadal jest spora różnica (koło 20%). Tak czy inaczej przejmowanie się performancem na tym poziomie w javascript nie ma dużego sensu przy wykorzystaniu współczesnym frameworków
obscurity
@bearek: 534652346346234634 == "534652346346234633" jest 100 razy wolniejsze nawet na chromie niż 534652346346234634 === "534652346346234633" . https://jsbench.me/wskgl15rpr/1 W drugim przypadku zwraca false od razu bo wie że typy są różne, w pierwszym przypadku musi najpierw zamienić string na liczbę - im dłuższy string tym wolniejsze porównanie, dla długich ciągów jest to nawet 10 000x wolniejsze. Więc wszystko zależy od tego co porównujemy i jakich oczekujemy rezultatów
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
2

Słabe to jest to, że zarówno do podstawiania jak i porównywania używa się znaków równości, a na dodatek parser JS nie widzi żadnego problemu w takim zapisie:

Kopiuj
var x=1;
if (x=2) alert(2);

Bo przecież każdy normalny człowiek będzie zainteresowany sprawdzeniem tego, czy operacja podstawienia się udała :p

Nie wiem, jak innym, ale mi się raz na jakiś czas zdarza taki błąd i szukanie go zawsze rozwija poziom kwiecistości mego języka.


Zobacz pozostały 1 komentarz
PerlMonk
@Freja Draco: Trochę to jest "zepsute", ale czy IDE nie podkreśla tu błędu?
obscurity
większość linterów też powinno krzyczeć. Ja sobie nie przypominam kiedy ostatnio popełniłem tego typu błąd
PerlMonk
Swoją drogą dobą techniką jest zamiana operandów miejscami, żeby literał był z lewej strony. Wtedy jak człek nie wpisze jednego znaku to wyjdzie błąd.
obscurity
no tym właśnie są yoda conditions. Osobiście ich nie lubię, bo IDE i tak pokazuje takie błędy a wygląda to śmiesznie. Poza tym trzeba być naprawdę konsekwentnym i o tym pamiętać żeby dzięki temu ustrzec się od błędu. Podejrzewam że łatwiej zapamiętać żeby używać dwóch znaków równości niż o tym
PerlMonk
@obscurity: Nie czytałem linku. Używam tego nawet nie patrząc na nazwę :D
cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:dzień
  • Lokalizacja:Poznań
  • Postów:8802
3

Słabe to jest to, że zarówno do podstawiania jak i porównywania używa się znaków równości

I tutaj wbija na białym, bardzo leciwym (jakieś 50 lat) koniu Pascal ze swoim = sprawdzenie oraz := przypisanie. Ciężko to pomylić :P


bearek
Osobiście podoba mi się w Swifcie i Pythonie to, że nie można użyć = w wyrażeniu. Np. if a = 3 wyrzuca błąd.
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
0
cerrato napisał(a):

Słabe to jest to, że zarówno do podstawiania jak i porównywania używa się znaków równości

I tutaj wbija na białym, bardzo leciwym (jakieś 50 lat) koniu Pascal ze swoim = sprawdzenie oraz := przypisanie. Ciężko to pomylić :P

No fajnie, ale tu też możesz zapomnieć jednego znaku i kod się skompiluje. Co za różnica czy to jest dwukropek czy drugi znak równości?


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
edytowany 1x, ostatnio: PerlMonk
Zobacz pozostały 1 komentarz
PerlMonk
No nie. Zapominasz tak samo, więc nie baudzo.
bearek
Jak programujesz w Pascalu i innych językach, to może. Ale operator przypisania w Pascalu jest na tyle odseparowany od sprawdzania równości, że się o nim nie zapomina. Mówisz o zapominaniu, bo jesteś przyzwyczajony z innych języków. Programiści Pascala nie mieli tego problemu i ten błąd praktycznie nie istniał.
PerlMonk
Ja tego problemu nie mam w żadnym języku, bo nie zapominam, więc argument, że programiści Pascal nie zapominają jest z kosmosu.
bearek
Ja też nie mam, ale wielu programistów ma. Dlatego przecież mamy yodę. Napisałbym wywód dlaczego = jest mylone z ==, ale muszę teraz uciekać. Może później :)
Silv
Ja bym obu Wam przyznał rację.
cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:dzień
  • Lokalizacja:Poznań
  • Postów:8802
3

Tak, ale ten brak dwukropka od razu widać gołym okiem. Jak masz same równasię w ilości 1 do 3, to potem można się zakręcić. A ten dwukropek jest tak wyróżniający, że uwierz mi - po jakimś czasie od razu się jego brak rzuca w oczy. Przez wieeeele lat pisania w Pascalu nie przypominam sobie ani razu sytuacji, w której zastosowałem zamiennie = lub :=. Nie umiem tego wyjaśnić, ale takie podejście od samego początku, że jak chcesz przypisać to dodajesz dwukropek wyrabia pewne nawyki, które potem się przekładają na automatyczne pisanie. Coś jak w przypadku kierowcy, który po jakimś czasie w ogóle nie myśli o zmianie biegów, to się dzieje samodzielnie.

Może @furious programming będzie miał coś ciekawego do dodania ;)


PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
0

@cerrato: Przyzwyczajenie - równie dobrze mogę się przyzwyczaić do odwracania kolejności operandów. Tu mówisz o dwóch różnych rzeczach: zabezpieczeniu na poziomie języka i człowieka. Gdybym chciał zrobić to na poziomie języka, zrobiłbym to tak cmp (zmienna, dupa) i nie stosował znaku równości do porównania.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1
cerrato napisał(a):

Słabe to jest to, że zarówno do podstawiania jak i porównywania używa się znaków równości

I tutaj wbija na białym, bardzo leciwym (jakieś 50 lat) koniu Pascal ze swoim = sprawdzenie oraz := przypisanie. Ciężko to pomylić :P

:= jest już lepsze, ale jak wchodziłam w Pascal z Basica, to też mi się myliło.
To powinno być raczej coś zupełnie odmiennego, coś w stylu:
x << a + b


bearek
Trochę za dużo pisania jak na tak podstawową operację, ale ogólnie się zgadzam z Tobą, że ten operator powinien być wyraźnie inny niż porównanie. Ale inną opcją byłaby zmiana operatora porównania :)
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Silesia/Marki
  • Postów:5505
1
Freja Draco napisał(a):

To powinno być raczej coś zupełnie odmiennego, coś w stylu:
x << a + b

Rozwiązanie twoich problemów jest przypisanie nie zwracające wartości co często jest robione w nowszych językach programowania. Np. w Scali if (a = b) jest niepoprawne bo a = b zwraca Unit. Podobnie w Ruscie jest w dokumentacji

Kopiuj
let x = (y = 6);  // x has the value `()`, not `6`

Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 1x, ostatnio: KamilAdam
obscurity
to w ruście nie ma żadnego sposobu żeby zainicjować kilka zmiennych tą samą wartością? W stylu x = y = z = 0?
Patryk27
@obscurity: nie, nie można; język jest jednak na tyle ekspresyjny, że nie przypominam sobie sytuacji, w której taka składnia byłaby przydatna.
jarekr000000
Serio, to chyba ostatnio miałem pomysł i potrzebę na to żeby użyć takiej inicjalizacji... gdzieś w roku 1995.
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
0
Freja Draco napisał(a):

:= jest już lepsze, ale jak wchodziłam w Pascal z Basica, to też mi się myliło.
To powinno być raczej coś zupełnie odmiennego, coś w stylu:
x << a + b

Ew. rozwiązaniem mogłoby być też podejście zupełnie odmienne:
x = 1 + 2;
if (x = 2) wystrzel_rakietę();
I parser, który zależnie od kontekstu odpowiednio interpretuje znak równości.
Chociaż możliwe, że to też mogłoby czasem generować jakieś nieoczywiste błędy.


Zobacz pozostałe 2 komentarze
bearek
No dobrze, ale często chcemy przypisać czemuś true/false w zależności czy jakieś dwie wartości są równe.
Freja Draco
Freja Draco
@bearek: To mogłoby wyglądać np tak: x = true(y = z);
obscurity
tbh cieszę się że nie projektowaliście tych języków :P
bearek
@tbh Jacy "wy"? Ja tu niczego nie projektuję, tylko mówię, że pewnie można to lepiej rozwiązać. Ba, jestem pewien że za kilka lat wymyślą coś lepszego niż = i ==.
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Silesia/Marki
  • Postów:5505
0
Freja Draco napisał(a):

Ew. rozwiązaniem mogłoby być też podejście zupełnie odmienne:
x = 1 + 2;
if (x = 2) wystrzel_rakietę();
I parser, który zależnie od kontekstu odpowiednio interpretuje znak równości.
Chociaż możliwe, że to też mogłoby czasem generować jakieś nieoczywiste błędy.

Jeśli przypisanie zwraca zawsze unit/void, a porównanie zwraca zawsze boolean to nie powinno być to problemem. (Dalej problemem jest to że JS jest dynamicznie typowany) Tak jest przecież SQLu. Tak było w pascalopodobnym języku programowania w GameMakerze jak się tym bawiłem 10 lat temu


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 1x, ostatnio: KamilAdam
bearek
Pamiętam GameMakera :D
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Tuchów
  • Postów:12174
3
PerlMonk napisał(a):

No fajnie, ale tu też możesz zapomnieć jednego znaku i kod się skompiluje.

What?! Panie, kod w żadnym dialekcie Pascala nigdy nie zostanie skompilowany, jeśli zamiast operatora przypisania użyjesz porównania. Czemu takie fake newsy rozpuszczasz? :P


cerrato napisał(a):

Tak, ale ten brak dwukropka od razu widać gołym okiem. Jak masz same równasię w ilości 1 do 3, to potem można się zakręcić.

Myślę, że po jakimś czasie da się tego nauczyć i wstawiać te operatory odruchowo. Co w dalszym ciągu nie zmienia faktu, że trzy różne operatory porównania to trzy razy więcej miejsc do popełnienia błędów. I za to twórcy języka „powinni zapier****ć na galerze”.

A ten dwukropek jest tak wyróżniający, że uwierz mi - po jakimś czasie od razu się jego brak rzuca w oczy.

Rzuca się w oczy, a jeszcze bardziej błędy kompilacji wynikające z jego braku. ;)

Przez wieeeele lat pisania w Pascalu nie przypominam sobie ani razu sytuacji, w której zastosowałem zamiennie = lub :=.

A mi się zdarzało wielokrotnie — czasem się nie wpisał, bo albo za szybko pisałem i myślałem o dalszej części, albo źle stuknąłem w klawisz. No ale taka konstrukcja nie ma prawa się skompilować, bo rezultat każdego porównania musi być do czegoś użyty — przypisany do zmiennej lub puszczony jako argument funkcji.

To samo w drugą stronę — przypisanie jest możliwe tylko do zmiennej i nie ma możliwości wykorzystania go np. w nagłówku instrukcji warunkowej czy w wywołaniu funkcji (w argumencie). Pascal nie posiada patologii znanej z C, i bardzo dobrze, bo dzięki temu jest banalny do zrozumienia.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 6x, ostatnio: flowCRANE
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 16 godzin
  • Lokalizacja:Laska, z Polski
  • Postów:10086
3
assembler napisał(a):

Nie uważacie że powinno się używać operatora domyślnego i krótszego ==?

Czemu konkretnie == miałby być "domyślny"?

W PHP jakoś == jest częściej używany

Nie jest.

PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
0
TomRiddle napisał(a):

Nie jest.

Skąd wiesz?


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 16 godzin
  • Lokalizacja:Laska, z Polski
  • Postów:10086
2
PerlMonk napisał(a):
TomRiddle napisał(a):

Nie jest.

Skąd wiesz?

Sam piszę często w PHP prywatnie (libka) i w pracy (nie mam wyboru), i nie mam ani jednego == w projekcie.

I całe szczęście, bo '1000' == '10e3'.

bearek
Co? Przecież '1000' == '10e3' to false, bez przesady :) Jak już to '1000' == 1e3, ale to wiadomo.
purrll
  • Rejestracja:około 5 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Kuala Lumpur
  • Postów:241
1
jarekr000000 napisał(a):

Ja tam jestem za tym, żeby było więcej równości.

Im więcej równości tym lepiej.
===============================================

Chciałbym zwrócić uwagę, że ten przykład jest nierówny. Występuje 47 znaków równości czyli nieparzyste. Aby była klasyczna równość pasowałoby mieć jednak parzystą ilość równości.


bearek
Ostatnio tak się śmiałem jak moja babcia miała zawał.
bearek
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad rok
  • Postów:85
1

@TomRiddle: nie tłumacz im. Oni wiedzą lepiej jak wygląda praca w PHP, bo przecież te 10 lat temu fajnie było się pośmiać :)

KamilAdam
Dalej fajnie się pośmiać
bearek
To się śmiej.
PerlMonk
iks de

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.