Tso tawm Crystal programming lus 1.2

Qhov kev tso tawm ntawm Crystal 1.2 programming lus tau raug luam tawm, cov neeg tsim khoom tau sim ua ke kom yooj yim ntawm kev txhim kho hauv cov lus Ruby nrog rau kev ua haujlwm siab ntawm cov lus C. Crystal's syntax yog ze rau, tab sis tsis sib haum nrog Ruby, txawm hais tias qee qhov Ruby cov kev pab cuam khiav tsis tau hloov kho. Cov code compiler tau sau rau hauv Crystal thiab muab faib raws li Apache 2.0 daim ntawv tso cai.

Cov lus siv hom kev tshuaj xyuas zoo li qub, siv yam tsis tas yuav tsum tau qhia meej meej txog hom kev sib txawv thiab cov qauv kev sib cav hauv cov cai. Crystal cov kev pab cuam tau muab tso ua ke rau hauv cov ntaub ntawv ua tau zoo, nrog rau kev ntsuas macros thiab cov lej tsim tawm ntawm lub sijhawm sib sau. Hauv Crystal cov kev pab cuam, nws muaj peev xwm txuas cov ntawv khi uas sau hauv C. Parallelization ntawm txoj cai ua tiav yog ua tiav siv lo lus "spawn" lo lus tseem ceeb, uas tso cai rau koj los ua haujlwm tom qab asynchronously, tsis thaiv cov xov tseem ceeb, nyob rau hauv daim ntawv ntawm cov xov sib sib zog nqus hu ua fibers.

Lub tsev qiv ntawv tus qauv muab ntau cov haujlwm sib xws, suav nrog cov cuab yeej rau kev ua CSV, YAML, thiab JSON, cov khoom siv rau kev tsim HTTP servers, thiab WebSocket kev txhawb nqa. Thaum lub sij hawm txoj kev loj hlob, nws yog ib qho yooj yim mus siv cov "crystal play" hais kom ua, uas generates ib tug web interface (localhost: 8080 los ntawm lub neej ntawd) rau kev sib tham sib tua ntawm cov cai nyob rau hauv lub Crystal lus.

Cov kev hloov loj:

  • Ntxiv qhov muaj peev xwm los muab cov subclass ntawm cov chav kawm generic rau ib qho ntawm cov chav kawm niam txiv. Foo(T); kawg chav kawm Bar(T) < Foo(T); end x = Foo x = Bar
  • Tam sim no Macros tuaj yeem siv tus lej qis kom tsis quav ntsej tus nqi hauv ib lub voj voog. {% for _, v, i in {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% end %}
  • Ntxiv "file_exists?" txoj kev rau macros. txhawm rau txheeb xyuas qhov muaj nyob ntawm cov ntaub ntawv.
  • Tus qauv tsev qiv ntawv tam sim no txhawb nqa 128-ntsis cov lej.
  • Ntxiv Indexable:: Mutable (T) module nrog kev siv cov kev ua haujlwm siab heev rau kev sau xws li BitArray thiab Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = true # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Ntxiv XML:: Node #namespace_definition txoj kev los rho tawm lub npe tshwj xeeb los ntawm XML.
  • Txoj kev IO#write_utf8 thiab URI.encode tau raug txiav tawm thiab yuav tsum tau hloov los ntawm IO#write_string thiab URI.encode_path.
  • Kev them nyiaj yug rau 32-ntsis x86 architecture tau raug tsiv mus rau theem ob (cov pob khoom npaj tsis tau tsim lawm). Kev hloov mus rau thawj theem ntawm kev txhawb nqa rau ARM64 architecture tab tom npaj.
  • Ua haujlwm txuas ntxiv ua kom muaj kev txhawb nqa tag nrho rau Windows platform. Ntxiv kev txhawb nqa rau Windows sockets.
  • Ib pob thoob ntiaj teb tau ntxiv rau macOS, ua haujlwm ob qho tib si ntawm cov khoom siv nrog x86 processors thiab ntawm cov khoom siv nrog Apple M1 nti.

Tau qhov twg los: opennet.ru

Ntxiv ib saib