Ke le lumelisa bohle selemong se secha sa 2020.
Ho tloha ha ho phatlalatsoa ea pele
Selemong sena, puo e ile ea ntlafatsoa haholo, likarolo tse ngata tsa eona li ile tsa nahanoa ka botlalo, 'me ho ile ha khethoa vector ea tsoelo-pele.
Ke thabetse ho arolelana tsena tsohle le sechaba.
ikgololo
Morero ona o ntse o ntlafatsoa feela ka cheseho mme ha o iketse eka o busa lefats'e lefapheng la lipuo tse matla tsa mananeo!
Tsoelopele ena ha ea lokela ho nkuoa e le mokhoa o lokelang ho hahamalloa; projeke ha e ea nepahala, empa leha ho le joalo e ntse e tsoela pele.
Moqapi e mocha
Lefapheng la / mashc la polokelo ea morero, u ka bona phetolelo e ncha ea moqapi, e ngotsoeng ka Mash (phetolelo ea pele ea puo).
Moqapi o na le jenereithara ea khoutu lethathamong la asm (bakeng sa sekopanyi bakeng sa VM e thehiloeng ho stack).
Hajoale ke ntse ke nts'etsapele mofuta oa jenereithara ea Java (JDK 1.8).
Phetolelo e ncha ea moqapi e tšehetsa ka botlalo ts'ebetso ea phetolelo ea pele ea puo le ho e tlatsa.
OOP e ncha
Phetolelong e ncha ea puo, mosebetsi oa litlelase o hlophisitsoe bocha.
Mekhoa ea lihlopha e ka phatlalatsoa ka bobeli 'meleng oa sehlopha le ka ntle ho oona.
Sehlopha hona joale se na le sehahi se hlakileng: init.
Mohlala oa khoutu:
...
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
...
Haeba lefa le hlaha, joale re na le monyetla oa ho etsa mehala e futsitsoeng habonolo (super).
Mohlala oa khoutu:
...
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
Ho fetisoa ho matla ha mekhoa maemong a sehlopha:
...
func Polymorph::NewFoo(c):
return $a + $b + c
end
...
x -> Foo ?= Polymorph -> NewFoo
x -> Foo(30) // 60
Liphutheloana/libaka tsa mabitso
Sebaka sa mabitso se tlameha ho lula se hloekile!
Ka hona, puo e tlameha ho fana ka monyetla ona.
Ho Mash, haeba mokhoa oa sehlopha o tsitsitse, o ka bitsoa ka mokhoa o sireletsehileng ho tsoa karolong efe kapa efe ea khoutu.
Mohlala:
...
class MyPackage:
func MyFunc(a, b):
return a + b
end
end
...
println( MyPackage -> MyFunc(10, 20) ) // 30
Ka tsela, super operator o tla sebetsa ka nepo ha a bitsoa ka tsela ena.
Likhetho
Mofuteng o mocha oa puo ba tšoaroa joalo ka lihlopha:
...
try:
raise new Exception(
"My raised exception!"
)
catch E:
if E is Exception:
println(E)
else:
println("Unknown exception class!")
end
end
...
Enum e ncha
Hona joale likarolo tsa ho bala li ka abeloa boleng bo sa feleng:
enum MyEnum [
meFirst = "First",
meSecond = 2,
meThird
]
...
k ?= meSecond
...
if k in MyEnum:
...
end
Puo e kenyelelitsoeng
Mohlomong, Mash e ka fumana niche ea eona e le puo ea lenaneo e kentsoeng, e ts'oanang le Lua.
Ho qala ho sebelisa Mash bakeng sa merero ena, ha ho hlokahale hore u bokelle morero ka bouena.
Mash e na le Tikoloho ea Runtime - VM e thehiloeng ho stack e hlophisitsoeng e le laeborari e matla e nang le API e felletseng.
Seo u hlokang ho se etsa feela ke ho e eketsa molemong oa projeke ebe o etsa mehala e 'maloa.
Puo ka boeona e fana ka ts'ebetso ea ho sebetsa joalo ka puo e kentsoeng.
Ka nako e ts'oanang, ts'ebetso e amanang le lipuo le lilaebrari tsa mokha oa boraro ha e amehe.
Re fumana puo e kentsoeng e ka sebelisang matla a felletseng a meralo e fapaneng e ngotsoeng ho eona.
Mash + JVM
Ke ile ka qala ho hlahisa phetolelo ea mofetoleli bakeng sa JVM.
Mohlomong, ka mor'a nako ea N, poso e mabapi le sehlooho sena e tla hlaha ho Habré.
Liphello
Ha ho liphetho tse itseng. Ena ke boemeli ba mahareng ba liphetho.
Mahlohonolo ho bohle ka 2020.
Source: www.habr.com