የክሪስታል ፕሮግራሚንግ ቋንቋ መለቀቅ 1.5

የክሪስታል 1.5 ፕሮግራሚንግ ቋንቋ መለቀቅ ታትሟል፣ ገንቢዎቹ በሩቢ ቋንቋ የመልማትን ምቾት በC ቋንቋ ካለው ከፍተኛ የመተግበሪያ አፈፃፀም ጋር ለማጣመር እየሞከሩ ነው። ምንም እንኳን አንዳንድ የሩቢ ፕሮግራሞች እንደገና ሳይሠሩ ቢሰሩም የክሪስታል አገባብ ቅርብ ነው ፣ ግን ከ Ruby ጋር ሙሉ በሙሉ ተኳሃኝ አይደለም። የማጠናቀሪያው ኮድ በክሪስታል የተፃፈ እና በ Apache 2.0 ፍቃድ ስር ይሰራጫል።

ቋንቋው በኮዱ ውስጥ ያሉ የተለዋዋጮችን እና የሥልት ነጋሪ እሴቶችን በግልፅ መግለጽ ሳያስፈልገው የሚተገበር የማይንቀሳቀስ ዓይነት ማረጋገጫን ይጠቀማል። የክሪስታል ፕሮግራሞች በማክሮ ግምገማ እና በተጠናቀረ ጊዜ በኮድ ማመንጨት ወደ ተፈጻሚነት ባላቸው ፋይሎች ይጠቃለላሉ። በክሪስታል ፕሮግራሞች በ C ቋንቋ የተፃፉ ማሰሪያዎችን ማገናኘት ይፈቀዳል. የኮድ ማስፈጸሚያ ትይዩ የሚከናወነው “ስፓውን” ቁልፍ ቃልን በመጠቀም ነው ፣ይህም የጀርባ ተግባርን ባልተመሳሰል ሁናቴ እንዲያካሂዱ ይፈቅድልዎታል ፣ ዋናውን ክር ሳይገድቡ ፣ ፋይበር (ፋይበር) በሚባሉት ቀላል ክብደት ያላቸው ክሮች መልክ።

መደበኛው ቤተ-መጽሐፍት CSVን፣ YAML እና JSONን ለማስተናገድ የሚረዱ መሳሪያዎችን፣ HTTP አገልጋዮችን ለመገንባት አካላትን እና የዌብሶኬት ድጋፍን ጨምሮ በርካታ አጠቃላይ ተግባራትን ያቀርባል። በእድገት ሂደት ውስጥ በክሪስታል ቋንቋ በይነተገናኝ ኮድ አፈፃፀም የድር በይነገጽ (localhost: 8080 በነባሪ) የሚያመነጨውን “የክሪስታል ጨዋታ” ትዕዛዝ ለመጠቀም ምቹ ነው።

ዋና ለውጦች፡-

  • አቀናባሪው በአብስትራክት ዘዴ አተገባበር እና በትርጓሜው ውስጥ በክርክሩ ስሞች መካከል ያለውን የደብዳቤ ቼክ ጨምሯል። የስም አለመመጣጠን አሁን ማስጠንቀቂያን ይፈጥራል፡ አብስትራክት ክፍል FooAbstract abstract def foo(ቁጥር፡ Int32) : Nil end class Foo < FooAbstract def foo(name: Int32) : Nil p name end end 6 | def foo(ስም: Int32)፡ Nil ^— ማስጠንቀቂያ፡ የአቀማመጥ መለኪያ 'ስም' ከተሻረው ስልት መለኪያ 'ቁጥር' ጋር ይዛመዳል FooAbstract#foo(ቁጥር፡ Int32)፣ የተለየ ስም ያለው እና የተሰየመ ክርክር ማለፍን ሊጎዳ ይችላል።
  • የተለዋዋጭ ዋጋን ላልተተየበ ዘዴ ነጋሪ እሴት ስትመድቡ፣ ያ ነጋሪ እሴት አሁን በተለዋዋጭው አይነት የተገደበ ነው። ክፍል Foo @x : Int64 def initialize(x) @x = x # መለኪያ x አይነት @x መጨረሻ ይሆናል
  • ማብራሪያዎችን ወደ ዘዴዎች ወይም ማክሮዎች መለኪያዎች ማከል ይፈቀዳል። def foo (@[MaybeUnused] x); መጨረሻ#እሺ
  • በ tuples ውስጥ ቋሚዎችን እንደ ኢንዴክሶች እና ስሞች ለመጠቀም ተጨማሪ ድጋፍ። ቁልፍ = "s" foo = {s: "ሕብረቁምፊ", n: 0} foo[KEY] ያስቀምጣል.መጠን
  • ፋይሎችን እና ማውጫዎችን ለመሰረዝ አዲስ ፋይል#ሰርዝ? ዘዴዎችን ወደ ፋይል ኤፒአይ ታክሏል። እና Dir# Delete?፣ ፋይሉ ወይም ዳይሬክተሩ ከሌለ የውሸት ይመልሳል።
  • የፋይል.tempfile ዘዴ ጥበቃን አጠናክሯል፣ይህም አሁን የፋይል ስም በሚፈጥሩ ሕብረቁምፊዎች ውስጥ ባዶ ቁምፊዎችን አይፈቅድም።
  • በአቀነባባሪ እና በአስተርጓሚ ውፅዓት ውስጥ የቀለም ማድመቅን ለማሰናከል NO_COLOR የአካባቢ ተለዋዋጭ ታክሏል።
  • በአስተርጓሚ ሁነታ ላይ ጉልህ የሆነ የተሻሻለ ስራ.

ምንጭ: opennet.ru

አስተያየት ያክሉ