Tena koutou katoa i te tau hou 2020.
Mai i te whakaputanga o te tuatahi
I roto i tenei tau, i tino pai ake te reo, he maha nga ahuatanga i whakaarohia, ka whakatauhia te ahua o te whanaketanga.
E harikoa ana ahau ki te whakapuaki i enei mea katoa ki te hapori.
Whakakape
Ko tenei kaupapa e whakawhanakehia ana i runga i te ngakau hihiko anake, kaore e kii ki te rangatira o te ao i roto i nga kaupapa reo hotaka hihiri!
Ko tenei whanaketanga me kaua e kiia he paerewa hei tohenga; kaore te kaupapa i te pai, engari kei te whanake tonu.
Kaihanga hou
I roto i te peka /mashc o te putunga kaupapa, ka kite koe i tetahi putanga hou o te kaikohikohi, kua tuhia ki te Mash (te putanga tuatahi o te reo).
He kaihanga waehere kei roto i te rarangi asm (mo te kaikohi mo te VM e pa ana ki te puranga).
I tenei wa kei te whakawhanake ahau i tetahi putanga o te kaihanga mo Java (JDK 1.8).
Ko te putanga hou o te whakahiato e tino tautoko ana i nga mahi o te putanga tuatahi o te reo me te whakakii.
OOP Hou
I roto i te putanga hou o te reo, ko te mahi me nga karaehe kua hangaia etahi waahanga.
Ka taea te whakaatu i nga tikanga karaehe i roto i te tinana o te karaehe me waho.
Kei roto i te karaehe he kaihanga marama: init.
Waehere tauira:
...
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
...
Mena ka puta he taonga tuku iho, katahi ka whai waahi maatau ki te hanga waea tuku iho (super).
Waehere tauira:
...
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
Ko te whakakorenga hihiko o nga tikanga mo nga tauira karaehe:
...
func Polymorph::NewFoo(c):
return $a + $b + c
end
...
x -> Foo ?= Polymorph -> NewFoo
x -> Foo(30) // 60
Mōkī/mokowāingoa
Me noho ma te mokowā ingoa!
No reira, ma te reo e whakarato tenei huarahi.
I roto i te Mash, ki te hee te tikanga karaehe, ka taea te karanga mai i tetahi waahanga o te waehere.
Hei tauira:
...
class MyPackage:
func MyFunc(a, b):
return a + b
end
end
...
println( MyPackage -> MyFunc(10, 20) ) // 30
Ma te ara, ka tika te mahi a te super operator ina karangahia penei.
Tuhinga
I roto i te putanga hou o te reo ka rite ki nga karaehe:
...
try:
raise new Exception(
"My raised exception!"
)
catch E:
if E is Exception:
println(E)
else:
println("Unknown exception class!")
end
end
...
Enum hou
Inaianei ka taea te tautapa nga huānga tatau ki nga uara tuturu:
enum MyEnum [
meFirst = "First",
meSecond = 2,
meThird
]
...
k ?= meSecond
...
if k in MyEnum:
...
end
Te reo whakauru
Ka taea pea, ka kitea e Mash tana niche hei reo hootaka whakauru, he rite ki a Lua.
Hei tiimata ki te whakamahi i te Mash mo enei kaupapa, kaore koe e hiahia ki te whakahiato i te kaupapa.
He Taiao Runtime a Mash - he VM e ahu mai ana i te puranga kua whakahiatohia hei whare pukapuka hihiri me te API katoa.
Ko nga mea katoa hei mahi maau ko te taapiri atu ki te whakawhirinaki o te kaupapa me te waea waea.
Ko te reo ake e whakarato ana i te mahi hei reo whakauru.
I te wa ano, karekau e pa te mahi tahi me te reo me nga whare pukapuka tuatoru.
Ka whiwhi tatou i tetahi reo whakauru ka taea te whakamahi i te mana katoa o nga momo anga kua tuhia ki roto.
Mash + JVM
I timata ahau ki te whakawhanake i tetahi putanga o te kaiwhakamaori mo te JVM.
Akene, i muri i te N te roa, ka puta he panui mo tenei kaupapa ki runga i a Habré.
Ngā putanga
Karekau he hua motuhake. He whakaaturanga takawaenga tenei o nga hua.
Waimarie ki te katoa i te tau 2020.
Source: will.com