Mash waa luuqad barmaamij ah oo iskeed isu ururisa

Mash waa luuqad barmaamij ah oo iskeed isu ururisa

Waxaan salaamayaa qof walba sanadka cusub 2020.

Tan iyo markii la daabacay ee ugu horeysay boostada Ku dhawaad ​​1 sano ayaa ka soo wareegtay Mash.

Sannadkan gudihiisa, luuqadda aad ayaa loo wanaajiyay, dhinacyo badan oo ka mid ah ayaa laga fikiray, waxaana la go'aamiyay vector-ka horumarka.

Waxaan ku faraxsanahay inaan intaas oo dhan la wadaago bulshada.

Afeef

Mashruucan waxa lagu soo saaray xamaasad oo keliya oo aan iska dhigin in ay adduunka ka taliyaan dhinaca luuqadaha barnaamijyada firfircoonida leh!

Horumarkan waa in aan loo qaadan in uu yahay halbeeg la doonayo in lagu dadaalo,mashruucu maaha mid ku haboon,balse wuu soo korayaa si kastaba ha ahaatee.

GitHub
website
forum

Isku-dubarid cusub

Qeybta /mashc ee kaydka mashruuca, waxaad ku arki kartaa nooc cusub oo iskudubarid ah, kaas oo ku qoran Mash (nooca koowaad ee luqadda).

Isku-dubariduhu waxa uu leeyahay koronto-dhaliye kood ku jira liiska asm-ka (oo loogu talagalay soo-ururinta VM-ku-saleysan).
Hadda waxaan soo saarayaa nooc ka mid ah koronto-dhaliyaha Java (JDK 1.8).

Nooca cusub ee isku-dubariduhu wuxuu si buuxda u taageerayaa shaqeynta nooca koowaad ee luqadda oo uu dhammaystiro.

OOP cusub

Nooca cusub ee luqadda, shaqada fasallada ayaa qayb dib loo habeeyay.
Hababka fasalka waxaa lagu dhawaaqi karaa labadaba gudaha fasalka iyo dibaddaba.
Fasalka hadda wuxuu leeyahay dhisme cad: init.

Koodhka Tusaalaha:

...
class MyClass:
  private:
    var a, b

  public:
    init(a, b):
      $a ?= a
      $b ?= b
    end

    func Foo():
      return $a + $b   
    end
end

func MyClass::Bar(c):
  return $a + $b + c
end
...

Haddii dhaxalku dhaco, markaa waxaan haysanaa fursad aan si fudud u samayno wicitaanno la dhaxlo (super).

Koodhka Tusaalaha:

...
class MySecondClass(MyClass):
  public:
    var c

    init(a, b, c):
      super(a, b)
      $c ?= c
    end

    func Bar():
      super($c)  
    end
end
...

x ?= new MySecondClass(10, 20, 30)
println( x -> Bar() )     // 60

Ka-hortagga firfircoon ee hababka marxaladaha fasalka:

...
func Polymorph::NewFoo(c):
  return $a + $b + c  
end
...
x -> Foo ?= Polymorph -> NewFoo
x -> Foo(30)    // 60

Baakadaha/magacyada

Meesha magacu waa inay ahaato mid nadiif ah!
Sidaas awgeed, afku waa inuu bixiyaa fursadan.
Gudaha Mash, haddii habka fasalka uu yahay mid taagan, si badbaado leh ayaa looga wici karaa qayb kasta oo koodka ah.

Tusaale:

...
class MyPackage:
  func MyFunc(a, b):
    return a + b  
  end
end
...
println( MyPackage -> MyFunc(10, 20) )    // 30

Jid ahaan, hawlwadeenka super si sax ah ayuu u shaqayn doonaa marka sidan loogu yeedho.

Ka reeban

Nooca cusub ee luqadda waxaa loola dhaqmaa sida fasallada:

...
try:
  raise new Exception(
    "My raised exception!"
  )
catch E:
  if E is Exception:
    println(E)
  else:
    println("Unknown exception class!")
  end
end
...

Tiro cusub

Hadda curiyayaasha tirinta waxa loo qoondayn karaa qiimayaal joogto ah:

enum MyEnum [
  meFirst = "First",
  meSecond = 2,
  meThird
]
...
k ?= meSecond
...
if k in MyEnum:
  ...
end

Luqada ku dhex jirta

Sida macquulka ah, Mash waxa ay u heli kartaa nuuceeda sidii luuqad barnaamijeed la dhex galiyay, oo la mid ah Lua.

Si aad u bilowdo isticmaalka Mash ujeedooyinkan, xitaa uma baahnid inaad adigu ururiso mashruuca.

Mash waxay leedahay deegaan Runtime ah - VM-ku-saleysan oo la soo aruuriyay oo la soo uruuriyay sidii maktabad firfircoon oo leh API buuxa.

Waxa kaliya ee aad u baahan tahay inaad sameyso waa ku dar ku tiirsanaanta mashruuca oo samee dhowr wicitaan.

Luqadda lafteedu waxay bixisaa shaqeyn si loogu shaqeeyo sidii luqad gundhig ahaan.
Isla mar ahaantaana, waxqabadka la xidhiidha luqadda iyo maktabadaha qolo saddexaad ma saameynayso.
Waxaan helnaa luqad isku xiran oo isticmaali karta awoodda buuxda ee qaabab kala duwan oo ku qoran.

Mash + JVM

Waxaan bilaabay in aan soo saaro nooc ka mid ah tarjumaha JVM-ka.
Waxaa laga yaabaa, ka bacdi inta N wakhtiga, boostada mawduucan ayaa ka soo bixi doonta HabrΓ©.

Natiijooyinka

Ma jiraan natiijooyin gaar ah. Tani waa dhexdhexaadinta natiijooyinka.
Nasiib wacan qof walba 2020.

Source: www.habr.com

Add a comment