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

Ua paʻi ʻia ka hoʻokuʻu ʻana o ka ʻōlelo papahana Crystal 1.5, 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:

  • Ua hoʻohui ka mea hōʻuluʻulu i kahi hōʻoia no ka pilina o nā inoa hoʻopaʻapaʻa i ka hoʻokō ʻana i kahi ʻano abstract a me kāna wehewehe. Inā loaʻa ka inoa like ʻole, hoʻopuka ʻia kahi ʻōlelo aʻo: abstract class FooAbstract abstract def foo(helu: Int32) : Nil end class Foo < FooAbstract def foo(name : Int32) : Nil p name end end 6 | def foo(inoa: Int32): ʻAʻole ^— ʻŌlelo aʻo: pili ka ʻāpana kūlana 'inoa' ​​me ka ʻāpana 'helu' o ke ʻano i hoʻopau ʻia ʻo FooAbstract#foo(helu: Int32), he inoa ʻokoʻa kona a hiki ke hoʻopilikia i ka hoʻopaʻapaʻa inoa ʻana.
  • Ke hāʻawi ʻana i kahi hoʻopaʻapaʻa i kahi ʻano untyped i ka waiwai o kahi loli, ua kāohi ʻia ka hoʻopaʻapaʻa i ke ʻano o kēlā ʻano. papa Foo @x : Int64 def hoʻomaka (x) @x = x # ʻāpana x e paʻi ʻia @x hopena hope
  • ʻAe iā ʻoe e hoʻohui i nā hōʻike i nā ʻāpana o nā ʻano a i ʻole nā ​​macros. def foo(@[MaybeUnused] x); pau # OK
  • Hoʻohui kākoʻo no ka hoʻohana ʻana i nā mea mau ma ke ʻano he mau kuhikuhi a me nā inoa i nā tuple. KEY = "s" foo = {s: "String", n: 0} kau i ka foo[KEY].size
  • Ua hoʻohui ʻia nā ʻano hana hou File#delete? i ka File API no ka holoi ʻana i nā faila a me nā papa kuhikuhi. a me Dir#delete?, ka mea e hoʻihoʻi wahaheʻe inā nalo ka faila a i ʻole ka papa kuhikuhi.
  • Ua hoʻoikaika ʻia ka pale o ke ʻano File.tempfile, ʻaʻole ia e ʻae i nā huaʻōlelo null i nā laina i hana i ka inoa faila.
  • Hoʻohui ʻia ka hoʻololi kaiapuni NO_COLOR, ka mea e hoʻopau i ka hōʻike ʻana i ka kala i ka mea hoʻopili a me ka unuhi unuhi.
  • Ua hoʻomaikaʻi maikaʻi ʻia ka hana ma ke ʻano unuhi.

Source: opennet.ru

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