Hoʻokuʻu i ka ʻōlelo hoʻonohonoho Crystal 1.2

Ua paʻi ʻia ka hoʻokuʻu ʻana o ka ʻōlelo papahana Crystal 1.2, nā mea hoʻomohala e hoʻāʻo nei e hoʻohui i ka ʻoluʻolu o ka hoʻomohala ʻana i ka ʻōlelo Ruby me ka hiʻohiʻona hana kiʻekiʻe o ka ʻōlelo C. Kokoke ka syntax o Crystal, akā ʻaʻole paʻa loa me Ruby, ʻoiai ke holo nei kekahi mau polokalamu Ruby me ka ʻole o ka hoʻololi ʻana. Ua kākau ʻia ka code compiler ma Crystal a māhele ʻia ma lalo o ka laikini Apache 2.0.

Hoʻohana ka ʻōlelo i ka nānā ʻana i ke ʻano static, i hoʻokō ʻia me ka ʻole o ka pono e wehewehe pono i nā ʻano o nā ʻano like ʻole a me nā ʻano hoʻopaʻapaʻa i loko o ke code. Hoʻopili ʻia nā polokalamu Crystal i nā faila hiki ke hoʻokō ʻia, me ka loiloi ʻia ʻana o nā macros a me nā code i hana ʻia i ka manawa hōʻuluʻulu. Ma nā polokalamu Crystal, hiki ke hoʻohui i nā mea paʻa i kākau ʻia ma C. Hana ʻia ka parallelization o ka hoʻokō code me ka hoʻohana ʻana i ka huaʻōlelo "spawn", e hiki ai iā ʻoe ke holo i kahi hana hope asynchronously, me ka ʻole o ka pale ʻana i ke kaula nui, ma ke ʻano o nā kaula māmā i kapa ʻia nā fibers.

Hāʻawi ka waihona maʻamau i kahi pūʻulu nui o nā hana maʻamau, me nā mea hana no ka hoʻoponopono ʻana iā CSV, YAML, a me JSON, nā ʻāpana no ka hana ʻana i nā kikowaena HTTP, a me ke kākoʻo WebSocket. I ka wā o ka hoʻomohala ʻana, ua maʻalahi ka hoʻohana ʻana i ke kauoha "crystal play", e hoʻopuka ana i kahi kikowaena pūnaewele (localhost: 8080 ma ka paʻamau) no ka hoʻokō interactive o ke code ma ka ʻōlelo Crystal.

Nā hoʻololi nui:

  • Hoʻohui i ka hiki ke hāʻawi i kahi papa haʻahaʻa o kahi papa maʻamau i kahi mea o kahi papa makua. papa Foo(T); papa hope (T) < Foo(T); hope x = Foo x = Bar
  • Hiki i nā Macros ke hoʻohana i ka underscore e haʻalele i kahi waiwai i loko o ka loop loop. {% no _, v, i ma {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% hope %}
  • Hoʻohui ʻia ke ʻano "file_exists?" i ​​nā macros. e nānā i ke ola o kahi faila.
  • Kākoʻo ka waihona maʻamau i nā helu helu 128-bit.
  • Pākuʻi Indexable:: Mutable(T) module me ka hoʻokō ʻana i nā hana holomua no nā hōʻiliʻili e like me BitArray a me Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = ʻoiaʻiʻo # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Hoʻohui ʻia ka XML:: Node#namespace_definition ala e unuhi i kahi inoa kikoʻī mai XML.
  • Ua hoʻopau ʻia nā hana IO#write_utf8 a me URI.encode a pono e hoʻololi ʻia e IO#write_string a me URI.encode_path.
  • Ua hoʻoneʻe ʻia ke kākoʻo no ka hoʻolālā 32-bit x86 i ka pae ʻelua (ʻaʻole i hana hou ʻia nā pūʻolo i mākaukau). Ke hoʻomākaukau ʻia nei kahi hoʻololi i ka pae mua o ke kākoʻo no ka hoʻolālā ARM64.
  • Ke hoʻomau nei ka hana e hōʻoia i ke kākoʻo piha no ka paepae Windows. Kākoʻo hoʻohui ʻia no nā kumu Windows.
  • Ua hoʻohui ʻia kahi pūʻulu holoʻokoʻa no macOS, e hana ana ma nā polokalamu ʻelua me nā kaʻina hana x86 a me nā mea hana me ka Apple M1 chip.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka