Typowy problem związany z łączeniem łańcuchów dotyczy kilku zagadnień:
+
symbol przeciążenia
- proste błędy
- programiści są leniwi
# 1
Pierwszym i najważniejszym problemem związanym z używaniem +
do łączenia i dodawania ciągów jest to, że używasz +
do łączenia i dodawania ciągów .
jeśli masz zmienne a
i b
ustawiłeś c = a + b
, to niejednoznaczność zależy od typów a
i b
. Ta dwuznaczność zmusza do podjęcia dodatkowych kroków w celu złagodzenia problemu:
Concat String:
c = '' + a + b;
Dodanie:
c = parseFloat(a) + parseFloat(b);
To prowadzi mnie do drugiego punktu
# 2
Bardzo łatwo jest przypadkowo rzucić zmienną na ciąg, nie zdając sobie z tego sprawy. Łatwo jest również zapomnieć, że dane wejściowe pojawiają się w postaci ciągu:
a = prompt('Pick a number');
b = prompt('Pick a second number');
alert( a + b );
Daje nieintuicyjne wyniki, ponieważ zachęta zwraca wartość ciągu wejściowego.
# 3
Potrzebowanie pisania parseFloat
lub za Number()
każdym razem, gdy chcę to zrobić, jest żmudne i denerwujące. Uważam się za wystarczająco mądrego, aby pamiętać, że nie zepsuję moich dynamicznych typów, ale to nie znaczy, że nigdy nie zawiodłem moich dynamicznych typów . Prawda jest taka, że jestem zbyt leniwy, aby pisać parseFloat
lub za Number()
każdym razem, gdy dodam, ponieważ robię dużo dodawania.
Rozwiązanie?
Nie wszystkie języki używają +
do łączenia łańcuchów. PHP używa .
do łączenia ciągów, co pomaga rozróżnić, kiedy chcesz dodać liczby, a kiedy chcesz połączyć ciągi.
Do łączenia łańcuchów można użyć dowolnego symbolu, ale większość z nich jest już używana i najlepiej unikać duplikacji. Gdybym miał swoją drogę, prawdopodobnie użyłbym _
do łączenia łańcuchów i nie zezwalałbym na _
nazwy zmiennych.
bad
. Kim jestEveryone
?