Digit separator banner
Język C#

Przedstaw liczby w czytelny sposób z digit separator w C#

Tworząc kod staramy się zrobić to zgodnie ze sztuką, zachowując dobre praktyki clean code. Często jednak umykają nam najprostsze rzeczy. Dlatego warto wiedzieć, że język C# posiada separator liczb – digit separator. Pomaga on, nam ludziom, uniknąć frustracji przy pracy z dużymi liczbami, które trudno odczytać, gdy nie są przedstawione w wygodny dla nas sposób.

Przykład opisujący problem

Przejdźmy od razu do przykładu, ponieważ czym jest digit separator widać gołym okiem. Gdy chcemy przypisać liczbę do zmiennej, robimy to w taki sposób:

int number0 = 10000000;
int number1 = 100000000;

Jakbyście mieli w ciągu jednej sekundy, tak szybko odpowiedzieć, jaka liczba jest przypisana do number0, to czy trafilibyście? Jest na to szansa, ale czy bylibyście pewni tej odpowiedzi? Zauważamy, że te dwie liczby nie są sobie równe, ale nie dlatego, że odczytaliśmy ich wartości. Widzimy, że druga jest dłuższa od pierwszej. Jak to będzie wyglądało z separatorem?

int number0 = 10_000_000;
int number1 = 100_000_000;

Dużo lepiej. W taki sposób odczytujemy liczby o wiele szybciej. Nie będziemy musieli liczyć z ilu pozycji składa się liczba. Dzięki separatorom wszystko widać.

Digit separator w C#

Digit separator pozwala nam w liczbie wpisywać podkreślniki (_), które kompilator całkowicie ignoruje. My ludzie w Polsce stawiamy raczej kropki lub spacje między cyframi, a w języku C# rozwiązali to tak. Nie było tak jednak od zawsze. To mechanika dodana do C# od wersji 7.0.

Co jednak dotyczy ludzkiego mózgu, warto przeczytać, czym jest subitacja lub chunking w psychologi pamięci.

Przykład – nie tylko inty

Liczby całkowite w postaci intów, to nie jedyne zmienne dostępne w C#. Separatory można dodawać również do innych typów liczbowych i formatów. A gdy liczba ma miejsce po przecinku, to również tam:

double number2 = 25_000_000.25;
decimal number3 = 25_000_000.2_4m;
double number4 = 1_500_000.123_456;
float number5 = 1_500_000.123_456f;
int number6 = 0b101_0110_1001; //Format liczby binarnej

Przykład – nie tylko pojedynczy digit separator

Ta wiedza może się nie przydać, ale można oddzielać liczby więcej niż jednym podkreślnikiem. Nie wiem jednak, gdzie mogłoby być to wykorzystane.

int number7 = 100______000__0_00;

Podsumowanie

Podział liczb naprawdę pomaga. Ile to razy człowiek dostaje chwilowej blokady, bo nie wie z jaką liczbą ma do czynienia. Dzięki digi separator ten problem znika. Warto dodać go nawet do wytycznych przy robieniu code review. Taka prosta zmiana może zapobiec pomyłkom przewartościowania liczby oraz marnowania czasu na ich rozpoznanie. Oczywiście wiadomo, że postawienie tych podkreślników w złym miejscu bardziej przeszkodzi niż pomoże. No i przy edytowaniu liczby nie zmienia się jedynie cyfr, bo trzeba pamiętać o podkreślnikach.

Czego się dowiedziałeś?

  1. Wiesz, jak zwiększyć czytelność zapisanych liczb w kodzie.
  2. Jesteś świadomy ludzkiego postrzegania zapisów liczb. Podzielona liczba jest bardziej czytelna dla człowieka.
  3. Wiesz, czym jest digit separator w C#.
  4. Nie jesteś aż takim leniem, żeby przy edycji liczby w kodzie nie zedytować poprawnie digit separatorów.
Social media & sharing icons powered by UltimatelySocial