…ale to je zcela stejné jako ve standardním C (http://ftp.gnu.org/old-gnu/Manuals/glibc-2.2.3/html_chapter/libc_20.html#SEC400)
Pokud vám nebude jedno jaký Int použít, nebo prostě jen budete chtít mít typ pod kontrolou zvolíte namísto prostého typu „Int“ následující UInt8, UInt16, UInt32 nebo UInt64. Lze to také globálně zadat při kompilaci. Jako všude jinde.
V C je logika naprosto jiná. V C je implicitní integer typ roven nejrychlejšímu integeru typu, většinou přirozenému typu daného procesoru.
U Swiftu je logika taková, že to Apple nedomyslel. Swift je evidentně jazyk udělaný na přitáhnutí těch, co nemají rádi ObjectiveC, ale když jsem si přečetl jeho příručku od Apple, myslím, že celkově jde o značně nedomyšlený jazyk. Na mnoha úrovních. Ostatně, deviza Swiftu je v přetáhnutí vývojářů k Apple, tedy marketinkový a obchodní cíl, nikoli být dobrým programovacím jazykem.
U Swiftu jsem existenci typů Int/UInt opravdu nepochopil. Zřejmě prostě marketinkový cíl zabránil Apple přemýšlet. Tím spíše, když ve Swiftu jsou typi Int8 až Int64 a totéž pro UInt. Na 64bitové platformě nemusí být 64bitový integer ten nejrychlejší.
Jinak řečeno, C má logiku, proč to tak dělá a důvod. Swift logiku v implicitním integer typu nemá žádnou. Kromě zbytečné složitosti a nesmyslů. Prostě jim nejspíše datové typu navrhoval asi přeučený kuchař, nebo uklízečka. Nikdo se nad tím v Apple nezamyslel.
Miloslav Ponkrác
Ještě bych mohl dodat další nedomyšlenost Swiftu, která ukazuje, že Apple zřejmě vůbec neuvažuje nad přenositelností. (Na rozdíl od C.)
Na mnoha platformách nejsou k dispozici typy Int16 a UInt16. Na řadě procesorů mimo x86 je vůbec nenajdete. Jejich emulace v programovacím jazyce je sice možná, ale výsledný kód je pak neskutečně pomalý a líný.
V C se nic takového neděje. V C nemusí takový typ existovat, namísto toho je zde int_least16, tedy typ s nejméně 16 bity.
Jednoduše Swift nic moc. Ten, kdo ho v Apple navrhoval byl hochštapler.
Internet Info Lupa.cz (www.lupa.cz)
Server o českém Internetu. ISSN 1213-0702
Copyright © 1998 – 2021 Internet Info, s.r.o. Všechna práva vyhrazena.