PHP DevelStudio - Хеш таблици, набори и масиви
Хеш масивите или просто масивите са известни на много езици. Обикновено масивът е списък, в който всеки елемент има индекс. Обикновените масиви могат да имат само число като индекси и често индексите започват от 0. В Orion и PHP масивите могат да имат низови стойности като индекси, поради което стават хеш масиви.
Общ синтаксис
Масивът се декларира чрез функцията Array, както в класическия php.
Когато декларираме масив без да посочваме ключове (т.е. индекси), те се определят автоматично, обикновено започвайки от 0. Ако искате да декларирате масив с ключове, тогава трябва да го направите по следния начин:
Нека разгледаме сложна опция, да речем, че искате масивът автоматично да започне да индексира не от 0, а от 10 например. Това също може да се направи:
Ключовете за масиви могат да бъдат числа, низове, булеви стойности или дори празен низ. Null за ключ от масив ще бъде същото като празен низ.
Добавяне на елементи
Orion има същата способност да добавя елементи към масив, както в PHP:
Когато пишете [] в масив без ключ, към масива се добавя нов Null елемент, всички ключове също обикновено започват от нула. Ако искате добавянето да започне от нулата, тогава можете да направите следното:
Масиви като множества
Нека да разгледаме пример, за да стане ясно:
Многомерни масиви
Orion поддържа многоизмерни масиви точно като PHP. Многомерен масив е масив, някои елементи от който също могат да бъдат масиви, както едномерни, така и многомерни.
Декларирането на многомерни масиви е също толкова лесно, колкото декларирането на едномерни масиви:
Помислете за същия запис под формата на набор:
Задава като мулти-резултат от функции
Известно е, че в някои езици една функция може да върне няколко резултата едновременно. В Orion това също е възможно елегантно и красиво, благодарение на нотацията на масивите като набори:
Функцията list превръща масив в променливи.
Низове като масиви
Низовете всъщност се държат малко като масиви. Всеки знак от низа може да бъде достъпен чрез неговия индекс директно като в масив, така че можете да промените и получите определени знаци от низа: