Sobes.tech
Junior — Middle

Оё имкон дорад, ки намудҳои гуногуни маълумот дар дохили як массив истифода шаванд?

sobes.tech AI

Ҷавоб аз AI

Дар iOS, агар мо дар бораи забони Swift гап занем, массивҳо (Array) бехатар дар соҳаи навъ мебошанд ва танҳо унсурҳои як навъро доранд. Иҷозат дода намешавад, ки мустақиман массив бо унсурҳои навъҳои гуногун, масалан [Int, String, Double] созем.

Аммо, агар лозим ояд, ки навъҳои гуногунро дар як массив нигоҳ доред, метавонед навъи Any ё AnyObject-ро истифода баред:

let mixedArray: [Any] = [42, "матн", 3.14, true]

Дар ин ҳолат, массив унсурҳои навъҳои гуногунро дорад, аммо ҳангоми кор бо онҳо бояд навъҳоро баргардонед, ки ин амали бехатарӣ ва қулайиро кам мекунад.

Дар Objective-C, массивҳо (NSArray) метавонанд объектҳои навъҳои гуногунро дар бар гиранд, зеро онҳо коллексияи объектҳо мебошанд, аммо навъҳои примиативӣ бояд дар объектҳо (NSNumber, NSString ва ғайра) бастабандӣ шаванд.

Аз ин рӯ, дар Swift массивҳо қатъӣ навъбандӣ шудаанд, аммо бо ёрии Any метавон навъҳои гуногунро нигоҳ дошт, ҳарчанд ин тавсия дода намешавад, ба истиснои зарурат.