Middle+
Оё навъи Value метавонад худро нигоҳ дорад? Ва оё ин изҳорот барои ҳамаи намояндагони навъи value дуруст аст?
sobes.tech AI
Ҷавоб аз AI
Не, навъи арзиш наметавонад бевосита нусхаи худро дар бар гирад. кӯшиши муайян кардани майдони ҳамин навъ дар структура ё enumeration ба хати компилятсия оварда мерасонад, зеро ин андозаи беохирро эҷод мекунад.
Аммо, навъи арзиш метавонад нусхаи ихтиёрӣ аз худ (Self?), истинод ба нусхаи навъи дигар (масалан, тавассути синф) ё истифодаи indirection (Indirect) дар enumeration-ҳо дошта бошад.
Ин барои ҳама навъҳои арзиш (структураҳо ва enumeration-ҳо) дуруст аст.
Масалан:
// Хатои компилятсия: навъи арзиш наметавонад дорои хусусияти ғайриопционалӣ аз навъи худ бошад
// struct MyStruct {
// var myself: MyStruct
// }
// Варианти бо опсионалӣ
struct MyStructWithOptional {
var myself: MyStructWithOptional?
}
// Варианти бо истинод ба синф
class MyClass {}
struct MyStructWithReference {
var myReference: MyClass
}
// Варианти бо indirect дар enum (имкон медиҳад ҳолатҳои рекурсивӣ)
indirect enum MyEnum {
case case1
case case2(MyEnum)
}