Ekele dịrị onye ọ bụla n'afọ ọhụrụ 2020.
Ebe ọ bụ na e bipụtara nke mbụ
N'ime afọ a, a na-eme ka asụsụ ahụ dịkwuo mma, a tụlere ọtụtụ akụkụ ya na vector nke mmepe.
Obi dị m ụtọ ịkọrọ ndị obodo ihe a niile.
Disclaimer
A na-arụ ọrụ a naanị na ịnụ ọkụ n'obi ma ọ dịghị eme ka ọ na-achị ụwa n'ọhịa nke asụsụ mmemme dị ike!
Agaghị ewere mmepe a dị ka ọkọlọtọ a ga-agba mbọ; ọrụ a adịghị mma, mana ọ na-etolite n'agbanyeghị.
Onye nchịkọta ọhụrụ
Na ngalaba /mashc nke ebe nchekwa ọrụ, ị nwere ike ịhụ ụdị ọhụrụ nke mkpokọta, nke edere na Mash (ụdị mbụ nke asụsụ).
Onye nchịkọta nwere koodu generator na ndepụta asm (maka onye na-ezukọta maka VM dabeere na nchịkọta).
Ugbu a, m na-emepụta ụdị generator maka Java (JDK 1.8).
Ụdị ọhụrụ nke mkpokọta na-akwado ọrụ nke ụdị mbụ nke asụsụ ahụ ma mejuo ya.
OOP ọhụrụ
N'ụdị asụsụ ọhụrụ, arụgharịrị ọrụ na klaasị n'otu akụkụ.
Enwere ike ikwuwapụta usoro klaasị ma n'anụ ahụ ma na mpụga ya.
Klas ugbu a nwere ihe nrụpụta doro anya: init.
Koodu nlele:
...
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
...
Ọ bụrụ na ihe nketa emee, yabụ anyị nwere ohere ịme oku ketara ngwa ngwa (super).
Koodu nlele:
...
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
Ntugharị dị egwu nke usoro na oge ọmụmụ klaasị:
...
func Polymorph::NewFoo(c):
return $a + $b + c
end
...
x -> Foo ?= Polymorph -> NewFoo
x -> Foo(30) // 60
Ngwungwu/oghere aha
Oghere aha ga-adị ọcha!
N'ihi ya, asụsụ ga-enye ohere a.
Na Mash, ọ bụrụ na usoro klaasị kwụ ọtọ, enwere ike ịkpọ ya n'enweghị nsogbu site na akụkụ ọ bụla nke koodu.
Ihe nlele:
...
class MyPackage:
func MyFunc(a, b):
return a + b
end
end
...
println( MyPackage -> MyFunc(10, 20) ) // 30
Site n'ụzọ, nnukwu onye ọrụ ga-arụ ọrụ nke ọma mgbe akpọrọ ya otu a.
Naanị
Na ụdị asụsụ ọhụrụ a na-emeso ha dị ka klaasị:
...
try:
raise new Exception(
"My raised exception!"
)
catch E:
if E is Exception:
println(E)
else:
println("Unknown exception class!")
end
end
...
Ọhụrụ enum
Ugbu a enwere ike kenye ihe ngụkọ ọnụ ụkpụrụ mgbe niile:
enum MyEnum [
meFirst = "First",
meSecond = 2,
meThird
]
...
k ?= meSecond
...
if k in MyEnum:
...
end
Asụsụ agbakwunyere
Enwere ike, Mash nwere ike ịchọta niche ya dị ka asụsụ mmemme agbakwunyere, yiri Lua.
Iji malite iji Mash maka ebumnuche ndị a, ọ dịghị mkpa ka ị chịkọta ọrụ ahụ n'onwe gị.
Mash nwere Gburugburu Oge ojiri gaa - VM gbadoro ụkwụ achịkọta dị ka ọba akwụkwọ siri ike nwere API zuru oke.
Ihe niile ị ga - eme bụ ịgbakwunye ya na ndabere ọrụ ma kpọọ oku abụọ.
Asụsụ n'onwe ya na-enye ọrụ iji rụọ ọrụ dị ka asụsụ agbakwunyere.
N'otu oge ahụ, arụmọrụ yana njikọ asụsụ na ọba akwụkwọ ndị ọzọ adịghị emetụta.
Anyị na-enweta asụsụ agbakwunyere nke nwere ike iji ike zuru oke nke usoro dị iche iche edere na ya.
Mash + JVM
Amalitere m imepụta ụdị onye ntụgharị maka JVM.
Ikekwe, mgbe oge N gachara, post na isiokwu a ga-apụta na Habré.
Nsonaazụ
Enweghị nsonaazụ pụrụ iche. Nke a bụ nnọchite anya n'etiti nsonaazụ ya.
chioma diri onye obula na 2020.
isi: www.habr.com