Początek blogowania o #programowanie (w przyszłości pewnie też #klawiaturamechaniczna)

https://hauleth.dev

Na początek 3 małe artykuły:

- Ownership w #rustlang wytłumaczony przy pomocy książek (dodatkowo ping na #haulethuczyrusta)
- Jak skonfigurowałem sobie #vim (dokładniej to #neovim) do pracy z BEAM (Elixir i Erlang)
- Co ciekawego jest w bibliotece Common Test w #erlang z punktu widzenia #elixir
Rust dla (t)opornych

Część 2. Ale, że jak bez Gówno Czujki?

W poprzedniej części dałem krótki opis czym Rust wyróżnia się na tle innych języków. Dzisiaj postaram się bardziej szczegółowo omówić system typów oraz powiązany z nim lifetime.

Rozdział 1. Typy podstawowe

Rust posiada parę typów, które są wbudowane i podstawowe (co chyba oczywiste):

+ typy całkowite ze znakiem: i8, i16, i32 i i64
+ typy całkowite bez znaku: u8
Rust dla (t)opornych

Część 1. Po kiego chu… grzyba, czyli co wyróżnia Rusta z pośród reszty.

Już jakiś czas temu napisałem wpis na Mirko gdzie porównywałem Rusta i parę innych "nowoczesnych" języków, tutaj się trochę rozpiszę i przy okazji dam małe wprowadzenie co i jak.

Rozdział 1. Niezmienność jest domyślna

W językach takich jak C, C++, C#, Java niezmienność jest wyborem. Wszystkie zmienne są w domyśle mutowalne. Ma to swoje zalety jako,
@Hauleth: N3797, §4.7/2 [conv.integral]:

If the destination type is unsigned, the resulting value is the least unsigned integer congruent to the source integer (modulo 2^n where n is the number of bits used to represent the unsigned type). [ Note: In a two’s complement representation, this conversion is conceptual and there is no change in the bit pattern (if there is no truncation). —end note ]

tl;dr: dodajesz lub odejmujesz
KrzaQ2 - @Hauleth: N3797, §4.7/2 [conv.integral]:
 If the destination type is unsigne...

źródło: comment_C8PnNdVCot3APj1U2mmCTb4Kr5mzTr8q.jpg

Pobierz
@KrzaQ2: Nie ma narzuconego mnoznika przy zwiekszaniu rozmiaru wektora (poza takim, ze k>1). Jezeli dobrze pamietam, VS uzywa k=1.5, gcc k=2. Natomiast co do domyslnego rozmiaru poczatkowego vektora, to nie spotkalem sie z innym niz 1 po pierwszym push_backu.