ืฉื—ืจื•ืจ ืฉืคืช ื”ืชื›ื ื•ืช Crystal 1.5

ืคื•ืจืกื ืฉื—ืจื•ืจ ืฉืคืช ื”ืชื›ื ื•ืช Crystal 1.5, ืืฉืจ ืžืคืชื—ื™ื” ืžื ืกื™ื ืœืฉืœื‘ ื‘ื™ืŸ ื ื•ื—ื•ืช ื”ืคื™ืชื•ื— ื‘ืฉืคืช Ruby ืœื‘ื™ืŸ ื‘ื™ืฆื•ืขื™ ื”ืืคืœื™ืงืฆื™ื” ื”ื’ื‘ื•ื”ื™ื ื”ืื•ืคื™ื™ื ื™ื™ื ืœืฉืคืช C. ื”ืชื—ื‘ื™ืจ ืฉืœ ืงืจื™ืกื˜ืœ ืงืจื•ื‘ ืœืจื•ื‘ื™, ืืš ืื™ื ื• ืชื•ืื ืœื• ื‘ืื•ืคืŸ ืžืœื, ืœืžืจื•ืช ืฉื—ืœืง ืžืชื•ื›ื ื™ื•ืช ืจื•ื‘ื™ ืคื•ืขืœื•ืช ืœืœื ืฉื™ื ื•ื™. ืงื•ื“ ื”ืžื”ื“ืจ ื›ืชื•ื‘ ื‘ืงืจื™ืกื˜ืœ ื•ืžื•ืคืฅ ืชื—ืช ืจื™ืฉื™ื•ืŸ Apache 2.0.

ื”ืฉืคื” ืžืฉืชืžืฉืช ื‘ื‘ื“ื™ืงืช ื˜ื™ืคื•ืก ืกื˜ื˜ื™ืช, ื”ืžื™ื•ืฉืžืช ืœืœื ืฆื•ืจืš ืœืฆื™ื™ืŸ ื‘ืžืคื•ืจืฉ ืืช ืกื•ื’ื™ ื”ืžืฉืชื ื™ื ื•ื”ืืจื’ื•ืžื ื˜ื™ื ืฉืœ ื”ืฉื™ื˜ื” ื‘ืงื•ื“. ืชื•ื›ื ื™ื•ืช ืงืจื™ืกื˜ืœ ืžื•ืจื›ื‘ื•ืช ืœืงื‘ืฆื™ ื”ืคืขืœื”, ื›ืืฉืจ ืคืงื•ื“ื•ืช ืžืืงืจื• ืžื•ืขืจื›ื•ืช ื•ืงื•ื“ ืฉื ื•ืฆืจ ื‘ื–ืžืŸ ื”ื”ื™ื“ื•ืจ. ื‘ืชื•ื›ื ื•ืช ืงืจื™ืกื˜ืœ ืืคืฉืจ ืœื—ื‘ืจ bindings ืฉื ื›ืชื‘ื• ื‘-C. ื”ืงื‘ื™ืœื” ืฉืœ ื‘ื™ืฆื•ืข ื”ืงื•ื“ ืžืชื‘ืฆืขืช ื‘ืืžืฆืขื•ืช ืžื™ืœืช ื”ืžืคืชื— "spawn", ื”ืžืืคืฉืจืช ืœื”ืจื™ืฅ ืžืฉื™ืžืช ืจืงืข ื‘ืื•ืคืŸ ืืกื™ื ื›ืจื•ื ื™, ืžื‘ืœื™ ืœื—ืกื•ื ืืช ื”ื—ื•ื˜ ื”ืจืืฉื™, ื‘ืฆื•ืจื” ืฉืœ ื—ื•ื˜ื™ื ืงืœื™ื ื”ื ืงืจืื™ื ืกื™ื‘ื™ื.

ื”ืกืคืจื™ื™ื” ื”ืกื˜ื ื“ืจื˜ื™ืช ืžืกืคืงืช ืกื˜ ื’ื“ื•ืœ ืฉืœ ืคื•ื ืงืฆื™ื•ืช ื ืคื•ืฆื•ืช, ื›ื•ืœืœ ื›ืœื™ื ืœืขื™ื‘ื•ื“ CSV, YAML ื•-JSON, ืจื›ื™ื‘ื™ื ืœื™ืฆื™ืจืช ืฉืจืชื™ HTTP ื•ืชืžื™ื›ื” ื‘-WebSocket. ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ืคื™ืชื•ื—, ื ื•ื— ืœื”ืฉืชืžืฉ ื‘ืคืงื•ื“ื” "crystal play", ื”ืžื™ื™ืฆืจืช ืžืžืฉืง ืื™ื ื˜ืจื ื˜ (localhost:8080 ื›ื‘ืจื™ืจืช ืžื—ื“ืœ) ืœื‘ื™ืฆื•ืข ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ ืฉืœ ืงื•ื“ ื‘ืฉืคืช Crystal.

ืฉื™ื ื•ื™ื™ื ืขื™ืงืจื™ื™ื:

  • ื”ืžื”ื“ืจ ื”ื•ืกื™ืฃ ื‘ื“ื™ืงื” ืœื”ืชืืžื” ืฉืœ ืฉืžื•ืช ืืจื’ื•ืžื ื˜ื™ื ื‘ื™ื™ืฉื•ื ืฉื™ื˜ื” ืžื•ืคืฉื˜ืช ื•ื‘ื”ื’ื“ืจืชื”. ืื ืงื™ื™ืžืช ืื™-ื”ืชืืžื” ืฉืœ ืฉื, ืžื•ื ืคืงืช ื›ืขืช ืื–ื”ืจื”: ืžื—ืœืงื” ืžื•ืคืฉื˜ืช FooAbstract abstract def foo(ืžืกืคืจ : Int32) : ืžื—ืœืงื” ืืคืกื™ืช Foo < FooAbstract def foo(ืฉื : Int32) : Nil p name end end 6 | def foo(name : Int32) : Nil ^โ€” ืื–ื”ืจื”: ืคืจืžื˜ืจ ืžื™ืงื•ื 'name' ืžืชืื™ื ืœืคืจืžื˜ืจ 'number' ืฉืœ ื”ืฉื™ื˜ื” ื”ื ื“ื—ืชื” FooAbstract#foo(number : Int32), ื‘ืขืœ ืฉื ืฉื•ื ื” ื•ืขืฉื•ื™ ืœื”ืฉืคื™ืข ืขืœ ื”ืขื‘ืจืช ืืจื’ื•ืžื ื˜ื™ื ื‘ืฉื
  • ื›ืืฉืจ ืžืงืฆื” ืืจื’ื•ืžื ื˜ ืœืžืชื•ื“ื” ืœื ืžื•ื“ืคืกืช ืœืขืจืš ืฉืœ ืžืฉืชื ื”, ื”ืืจื’ื•ืžื ื˜ ืžื•ื’ื‘ืœ ื›ืขืช ืœืกื•ื’ ื”ืžืฉืชื ื” ื”ื–ื”. class Foo @x : Int64 def initialize(x) @x = x # ืคืจืžื˜ืจ x ื™ื•ืงืœื“ @x end end
  • ืžืืคืฉืจ ืœืš ืœื”ื•ืกื™ืฃ ื”ืขืจื•ืช ืœืคืจืžื˜ืจื™ื ืฉืœ ืฉื™ื˜ื•ืช ืื• ืคืงื•ื“ื•ืช ืžืืงืจื•. def foo(@[MaybeUnused] x); ืกื•ืฃ # ื‘ืกื“ืจ
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืฉื™ืžื•ืฉ ื‘ืงื‘ื•ืขื™ื ื›ืžื“ื“ื™ื ื•ืฉืžื•ืช ื‘ื˜ืคื•ืœื™ื. KEY = "s" foo = {s: "ืžื—ืจื•ื–ืช", n: 0} ืžืฆื™ื‘ foo[KEY].size
  • ื ื•ืกืคื• ืฉื™ื˜ื•ืช File#delete? ื—ื“ืฉื•ืช ืœ-File API ืœืžื—ื™ืงืช ืงื‘ืฆื™ื ื•ืกืคืจื™ื•ืช. ื•-Dir#delete?, ืฉืžื—ื–ื™ืจื™ื false ืื ื”ืงื•ื‘ืฅ ืื• ื”ืกืคืจื™ื™ื” ื—ืกืจื™ื.
  • ื”ื”ื’ื ื” ืขืœ ืฉื™ื˜ืช File.tempfile ื—ื•ื–ืงื”, ืืฉืจ ื›ืขืช ืื™ื ื” ืžืืคืฉืจืช ืชื•ื•ื™ null ื‘ืฉื•ืจื•ืช ื”ื™ื•ืฆืจื•ืช ืืช ืฉื ื”ืงื•ื‘ืฅ.
  • ื ื•ืกืฃ ืžืฉืชื ื” ืกื‘ื™ื‘ื” NO_COLOR, ืืฉืจ ืžืฉื‘ื™ืช ื”ื“ื’ืฉืช ืฆื‘ืข ื‘ืคืœื˜ ืžื”ื“ืจ ื•ืžืชื•ืจื’ืžืŸ.
  • ื”ืขื‘ื•ื“ื” ื‘ืžืฆื‘ ืžืชื•ืจื’ืžืŸ ืฉื•ืคืจื” ืžืฉืžืขื•ืชื™ืช.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”