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