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ł
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

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ł
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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 2^bitów tyle razy aƶ wejdziesz w zakres unsigned typu.

Standard
KrzaQ2 - @Hauleth: N3797, §4.7/2 [conv.integral]:
 If the destination type is unsigne...

źródło: comment_C8PnNdVCot3APj1U2mmCTb4Kr5mzTr8q.jpg

Pobierz
  • Odpowiedz
@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.
  • Odpowiedz