Луаның эволюциясы
Кіріспе
Жаңа тілді үйрену және дамыту ортасы - бірінші мобильді қолданбаны жазғыңыз келсе, ең аз қажет. Кітаптан мысал үзбей, Android немесе iOS үшін қарапайым тапсырмалар тізімін түсіну үшін кем дегенде екі апта қажет. Бірақ сіз Objective-C немесе Java тілін үйренуден аулақ бола аласыз және әлі де PhoneGap сияқты технологияларды пайдаланып смартфон қолданбаларын жылдам жасай аласыз.
Егер сіз Windows 8 жүйесінде бізді күтіп тұрған жаңалықтарды мұқият зерттеген болсаңыз, оның астында HTML5-те қосымшаларды әзірлеуге болатынын байқаған боларсыз. Идея, шын мәнінде, жаңа емес - мобильді платформаларға бірдей тәсілді жүзеге асыратын технологиялар қарқынды дамып келеді. PhoneGap - бізге таныс HTML, JavaScript және CSS топтамасын пайдалана отырып, смартфондарға арналған қосымшаларды жасауға мүмкіндік беретін осындай негіздердің бірі! Онымен жазылған қолданба барлық танымал платформаларға жарамды: iOS, Android, Windows Phone, Blackberry, WebOS, Symbian және Bada. Сізге әр платформа үшін бағдарламалау ерекшеліктерін (мысалы, iOS жағдайында Objective-C) үйренудің қажеті жоқ, әртүрлі API интерфейстерімен және әзірлеу орталарымен айналысу қажет емес. Кросс-платформалық мобильді қосымшаны жасау үшін талап етілетін нәрсе - HTML5 және арнайы PhoneGap API білу. Сонымен қатар, нәтиже қолданба интерфейсінде жақтау ақымақ HTML беті болмайды, жоқ! Framework API сізге жергілікті құралдармен әзірлеу кезінде қолданылатын барлық дерлік телефон мүмкіндіктерін пайдалануға мүмкіндік береді: акселерометрге, компасқа, камераға (бейне жазу және суретке түсіру), контактілер тізіміне, файлдық жүйеге, хабарландыру жүйесіне (телефондағы стандартты хабарландырулар) қол жеткізу. , сақтау және т.б. Соңында, мұндай қолданба кез келген домендік мекенжайға қауіпсіз қол жеткізе алады. Сіз jQuery Mobile немесе Sencha сияқты фреймворктармен жергілікті басқару элементтерін қайта жасай аласыз және соңғы бағдарлама ұялы телефонда ана тілінде жазылғандай көрінеді (жақсы, дерлік). Жоғарыда айтылғандарды іс жүзінде көрсету, яғни өтініш жазу жақсы, сондықтан мен сізге бірден жаттығуды бастауды ұсынамын. Уақытты қадағалаңыз - барлық нәрсеге жарты сағаттан көп уақыт кетпейді.
Corona SDK бағдарламасы
Бұл технология негізгі платформаларды қолдайды - iOS және Android. Рамка негізінен ойынды дамытуға бағытталған. Таңқаларлық емес, өйткені әзірлеушілер OpenGL-де жоғары сапалы оңтайландыруды талап етеді. Платформаның ақысыз нұсқасы жоқ, ал бағасы өте қиын: бір платформаға лицензия үшін жылына $ 199 және iOS және Android үшін жылына $ 349. Corona өзінің IDE және құрылғы эмуляторларын ұсынады. Корона астындағы қолданбалар JavaScript-ке ұқсас тілде жазылған.
Луа (ˈлuːə МЫНА-ә; бастап португал тілі: луа [Wlu. (W) ɐ] мағынасы ай)[a] Бұл жеңіл, жоғары деңгей, көппарадигмалық бағдарламалау тілі негізінен арналған ендірілген пайдалану қосымшаларда.[2] Луа кросс-платформа, бастап аудармашы туралы құрастырылған байт коды ішінде жазылған ANSI C,[3] және Луада салыстырмалы түрде қарапайым C бар API оны қосымшаларға енгізу.[4]
Lua 1993 жылы кеңейтуге арналған тіл ретінде жасалған бағдарламалық жасақтама сол уақытта өсіп келе жатқан сұранысты қанағаттандыру. Бұл көпшіліктің негізгі мүмкіндіктерін ұсынды процедуралық бағдарламалау тілдер, бірақ неғұрлым күрделі немесе доменге тән ерекшеліктер қамтылмаған; Бағдарламашыларға осындай мүмкіндіктерді жүзеге асыруға мүмкіндік беретін, тілді кеңейту механизмдерін қамтыды. Lua жалпы ендірілетін кеңейту тілі болуға ниет білдіргендіктен, Lua дизайнерлері оның тілін жетілдіруге ден қойды жылдамдық, портативтілік, дамытуда кеңейту және пайдалану ыңғайлылығы.
Шығу тарихы
Луа 1993 жылы құрылды Роберто Иерусалимши, Луис Анрике де Фигейредо және Вальдемар Селес, компьютерлік графикалық технологиялар тобының мүшелері (Tecgraf) Рио-де-Жанейро Папалық католиктік университеті, жылы Бразилия.
1977 жылдан 1992 жылға дейін Бразилияда мықты саясат жүргізілді сауда кедергілері (нарықтық резерв деп аталады) компьютерлік аппараттық және бағдарламалық қамтамасыздандыруға арналған. Осындай атмосферада Tecgraf клиенттері саяси немесе қаржылық жағынан шетелден арнайы бағдарламалық жасақтама сатып ала алмады. Осы себептер Tecgraf-ті қажет болатын негізгі құралдарды нөлден бастауға мәжбүр етті.[5]
Луаның предшественниктері мәліметтерді сипаттау конфигурациялау тілдері болды СОЛ (Қарапайым объект тілі) және DEL (мәліметтерді енгізу тілі).[6] Олар екі түрлі жобаларға икемділік қосу үшін Tecgraf-де 1992-1993 жылдары дербес әзірленді (екеуі де инженерлік қосымшаларға арналған интерактивті графикалық бағдарламалар болды) Petrobras компания). SOL және DEL-та ағындарды басқаратын құрылымдардың жетіспеушілігі болды, және Petrobras оларға толық бағдарламалау қуатын қосу қажеттілігінің өсуін сезінді.
Луаның эволюциясы.
1993 жылы жалғыз нақты үміткер болды Tclқосымшаларға енуге арналған. Алайда, Tcl бейтаныс синтаксиске ие болды, деректерді сипаттауға жақсы қолдау көрсете алмады және тек Unix платформаларында жұмыс істеді. Біз қарастырған жоқпыз LISP немесе Схема өйткені олардың достық емес синтаксисі. Python әлі алғашқы сатысында болды. Ол кезде Tecgraf-та билік құрған еркін және өз қолдарымен жұмыс істейтін атмосферада сценарий тілін дамытуға тырысуымыз керек еді ... Тілдің көптеген әлеуетті қолданушылары кәсіби бағдарламашылар болмағандықтан, тіл құпия сөзден аулақ болу керек синтаксис және семантика. Жаңа тілді енгізу өте портативті болуы керек, өйткені Tecgraf клиенттерінде компьютерлік платформалардың жиынтығы өте көп болды. Сонымен, біз Tecgraf-тің басқа өнімдеріне де сценарий тілін енгізу қажет болады деп күткендіктен, жаңа тіл SOL-тен үлгі алуы керек және C API бар кітапхана ретінде ұсынылуы керек.
Lua 1.0 оның объект конструкторлары қазіргі жарық пен икемді стильден сәл өзгеше бола отырып, SOL деректерді сипаттау синтаксисін енгізетін етіп жасалған (сондықтан Луа атауы: Sol сонымен қатар Португал сөзі күн үшін, Луа Ай сөзі болу). Луа синтаксис басқару құрылымдары үшін негізінен қарыз алынды Модула (егер, уақыт, қайталаудейін) әсер етті, бірақ сонымен бірге КЛУ (қарапайым тапсырма ретінде бірнеше тағайындау және функционалды қоңыраулардан бірнеше қайтару анықтамалық параметрлер немесе айқын көрсеткіштер), C ++ (а. мүмкіндік беру туралы ұқыпты идея жергілікті айнымалы тек бізге қажет жерде жариялануы керек [5]), СНОБОЛ және ОҚ (ассоциативті массивтер). Жылы жарияланған мақалада Доктор Доббтың журналы, Луаны жасаушылар да бұл туралы айтады LISP және Схема деректерді құрылымдаудың барлық жерде кездесетін механизмімен ( тізім) олардың кестені Луаның бастапқы құрылымы ретінде жасау туралы шешіміне үлкен әсер етті.[7]
Луа семантика уақыт өте келе схеманың ықпалына ие болды,[5] әсіресе енгізуімен жасырын функциялар және толық лексикалық ауқым. Луаның жаңа нұсқаларында бірнеше мүмкіндіктер қосылды.
Lua 5.0 нұсқасына дейінгі нұсқалары ұқсас лицензиямен шығарылды BSD лицензиясы. 5.0 нұсқасынан бастап Lua лицензиясына сәйкес MIT лицензиясы. Екеуі де бағдарламалық жасақтаманың рұқсат етілген лицензиялары және бірдей.
Ерекшеліктер
Луаны әдетте мультипарадигматіл, әр түрлі проблемалық типтерге сай кеңейтілетін жалпы сипаттамалардың шағын жиынтығын ұсынады. Lua-да нақты қолдау жоқ мұрагерлік, бірақ оны жүзеге асыруға мүмкіндік береді метабельдер. Сол сияқты, Луа бағдарламашыларға іске асыруға мүмкіндік береді атаулар кеңістігі, сыныптар, және басқа кестенің бір кестесін қолданумен байланысты ерекшеліктер; бірінші класты функциялар бастап көптеген техникаларды пайдалануға мүмкіндік береді функционалды бағдарламалау; және толық лексикалық ауқымдылық ұсақ түйіршікті мүмкіндік береді ақпаратты жасыру орындау үшін ең кіші артықшылық принципі.
Жалпы, Луа қарапайым, икемді болуға тырысады мета-ерекшеліктер бір бағдарламалау парадигмасына тән мүмкіндіктер жиынтығынан гөрі қажет болған жағдайда кеңейтілуі мүмкін. Нәтижесінде негізгі тіл болып табылады жарық- толық анықтама аудармашы шамамен 247 құрайдыкБ құрастырылған[3]- және көптеген қосымшаларға оңай бейімделеді.
Луа - а динамикалық терілген ретінде қолдануға арналған тіл кеңейту немесе сценарий тілі және әр түрлі хост платформаларына сыятындай жинақы. Ол сияқты атомдық деректер құрылымдарының аз мөлшерін ғана қолдайды логикалық мәндер, сандар (екі дәлдік) өзгермелі нүкте және 64 биттік бүтін сандар әдепкі бойынша), және жіптер. Сияқты типтік деректер құрылымдары массивтер, жиынтықтар, тізімдер, және жазбалар Луаның түпнұсқалық дерек құрылымын, кесте негізінде ұсынуға болады, ол негізінен гетерогенді ассоциативті массив.
Lua сияқты жетілдірілген мүмкіндіктердің шағын жиынтығын жүзеге асырады бірінші класты функциялар, қоқыс шығару, жабылу, дұрыс құйрық қоңыраулары, мәжбүрлеу (орындау кезінде жол мен сан мәндерінің арасындағы автоматты түрлендіру), коруотиндер (көпжақты ынтымақтастық) және динамикалық модульді жүктеу.
Луа да қолдайды жабылу, төменде көрсетілгендей:
Айнымалының жаңа жабылуы х әр уақытта жасалады қосу деп аталады, сондықтан қайтарылған әрбір жаңа анонимді функция әрқашан өзіне қол жетімді болады х параметр. Жабуды басқа объектілер сияқты Луаның қоқыс жинаушысы басқарады.
Кестелер - бұл мәліметтер құрылымының маңызды құрылымы (және дизайн бойынша жалғыз кіріктірілген) мәліметтердің құрама түрі) Луада және қолданушы жасаған барлық типтердің негізі болып табылады. Олар ассоциативті массивтер автоматты сандық кілт пен арнайы синтаксисті қосу арқылы.
Кесте жиі қолданылады құрылым (немесе жазба) пайдалану арқылы жіптер кілттер ретінде. Мұндай қолдану өте жиі кездесетіндіктен, Lua осындай өрістерге қол жеткізу үшін арнайы синтаксисті ұсынады.
Байланысты функцияларды сақтау үшін кестені қолдану арқылы ол аттар кеңістігінің рөлін атқара алады.
Кестелерге автоматты түрде сандық кілт тағайындалады, бұл оларды an ретінде қолдануға мүмкіндік береді массивтің мәліметтер типі. Бірінші автоматты индекс көптеген басқа бағдарламалау тілдеріндегідей емес, 0-ден 1-ге тең (бірақ 0 индексіне рұқсат етілген).
Кестенің ұзындығы т кез келген бүтін индекс ретінде анықталған n осындай t [n] емес нөл және t [n + 1] болып табылады нөл; сонымен қатар, егер t [1] болып табылады нөл, n нөлге тең болуы мүмкін. 1-ден берілгенге дейінгі нөлдік емес мәндермен тұрақты жиым үшін n, оның ұзындығы дәл осы n, оның соңғы мәнінің индексі. Егер массивтің тесіктері болса (яғни, нөлге тең емес басқа мәндер арасында болса), онда # т а-ның алдында тұрған кез-келген индекстер болуы мүмкін нөл мәні (яғни кез келген нөл мәнін жиымның соңы ретінде қарастыруы мүмкін).
Массивті эмуляциялау үшін хэш ... жалғасы
Жаңа тілді үйрену және дамыту ортасы - бірінші мобильді қолданбаны жазғыңыз келсе, ең аз қажет. Кітаптан мысал үзбей, Android немесе iOS үшін қарапайым тапсырмалар тізімін түсіну үшін кем дегенде екі апта қажет. Бірақ сіз Objective-C немесе Java тілін үйренуден аулақ бола аласыз және әлі де PhoneGap сияқты технологияларды пайдаланып смартфон қолданбаларын жылдам жасай аласыз.
Егер сіз Windows 8 жүйесінде бізді күтіп тұрған жаңалықтарды мұқият зерттеген болсаңыз, оның астында HTML5-те қосымшаларды әзірлеуге болатынын байқаған боларсыз. Идея, шын мәнінде, жаңа емес - мобильді платформаларға бірдей тәсілді жүзеге асыратын технологиялар қарқынды дамып келеді. PhoneGap - бізге таныс HTML, JavaScript және CSS топтамасын пайдалана отырып, смартфондарға арналған қосымшаларды жасауға мүмкіндік беретін осындай негіздердің бірі! Онымен жазылған қолданба барлық танымал платформаларға жарамды: iOS, Android, Windows Phone, Blackberry, WebOS, Symbian және Bada. Сізге әр платформа үшін бағдарламалау ерекшеліктерін (мысалы, iOS жағдайында Objective-C) үйренудің қажеті жоқ, әртүрлі API интерфейстерімен және әзірлеу орталарымен айналысу қажет емес. Кросс-платформалық мобильді қосымшаны жасау үшін талап етілетін нәрсе - HTML5 және арнайы PhoneGap API білу. Сонымен қатар, нәтиже қолданба интерфейсінде жақтау ақымақ HTML беті болмайды, жоқ! Framework API сізге жергілікті құралдармен әзірлеу кезінде қолданылатын барлық дерлік телефон мүмкіндіктерін пайдалануға мүмкіндік береді: акселерометрге, компасқа, камераға (бейне жазу және суретке түсіру), контактілер тізіміне, файлдық жүйеге, хабарландыру жүйесіне (телефондағы стандартты хабарландырулар) қол жеткізу. , сақтау және т.б. Соңында, мұндай қолданба кез келген домендік мекенжайға қауіпсіз қол жеткізе алады. Сіз jQuery Mobile немесе Sencha сияқты фреймворктармен жергілікті басқару элементтерін қайта жасай аласыз және соңғы бағдарлама ұялы телефонда ана тілінде жазылғандай көрінеді (жақсы, дерлік). Жоғарыда айтылғандарды іс жүзінде көрсету, яғни өтініш жазу жақсы, сондықтан мен сізге бірден жаттығуды бастауды ұсынамын. Уақытты қадағалаңыз - барлық нәрсеге жарты сағаттан көп уақыт кетпейді.
Corona SDK бағдарламасы
Бұл технология негізгі платформаларды қолдайды - iOS және Android. Рамка негізінен ойынды дамытуға бағытталған. Таңқаларлық емес, өйткені әзірлеушілер OpenGL-де жоғары сапалы оңтайландыруды талап етеді. Платформаның ақысыз нұсқасы жоқ, ал бағасы өте қиын: бір платформаға лицензия үшін жылына $ 199 және iOS және Android үшін жылына $ 349. Corona өзінің IDE және құрылғы эмуляторларын ұсынады. Корона астындағы қолданбалар JavaScript-ке ұқсас тілде жазылған.
Луа (ˈлuːə МЫНА-ә; бастап португал тілі: луа [Wlu. (W) ɐ] мағынасы ай)[a] Бұл жеңіл, жоғары деңгей, көппарадигмалық бағдарламалау тілі негізінен арналған ендірілген пайдалану қосымшаларда.[2] Луа кросс-платформа, бастап аудармашы туралы құрастырылған байт коды ішінде жазылған ANSI C,[3] және Луада салыстырмалы түрде қарапайым C бар API оны қосымшаларға енгізу.[4]
Lua 1993 жылы кеңейтуге арналған тіл ретінде жасалған бағдарламалық жасақтама сол уақытта өсіп келе жатқан сұранысты қанағаттандыру. Бұл көпшіліктің негізгі мүмкіндіктерін ұсынды процедуралық бағдарламалау тілдер, бірақ неғұрлым күрделі немесе доменге тән ерекшеліктер қамтылмаған; Бағдарламашыларға осындай мүмкіндіктерді жүзеге асыруға мүмкіндік беретін, тілді кеңейту механизмдерін қамтыды. Lua жалпы ендірілетін кеңейту тілі болуға ниет білдіргендіктен, Lua дизайнерлері оның тілін жетілдіруге ден қойды жылдамдық, портативтілік, дамытуда кеңейту және пайдалану ыңғайлылығы.
Шығу тарихы
Луа 1993 жылы құрылды Роберто Иерусалимши, Луис Анрике де Фигейредо және Вальдемар Селес, компьютерлік графикалық технологиялар тобының мүшелері (Tecgraf) Рио-де-Жанейро Папалық католиктік университеті, жылы Бразилия.
1977 жылдан 1992 жылға дейін Бразилияда мықты саясат жүргізілді сауда кедергілері (нарықтық резерв деп аталады) компьютерлік аппараттық және бағдарламалық қамтамасыздандыруға арналған. Осындай атмосферада Tecgraf клиенттері саяси немесе қаржылық жағынан шетелден арнайы бағдарламалық жасақтама сатып ала алмады. Осы себептер Tecgraf-ті қажет болатын негізгі құралдарды нөлден бастауға мәжбүр етті.[5]
Луаның предшественниктері мәліметтерді сипаттау конфигурациялау тілдері болды СОЛ (Қарапайым объект тілі) және DEL (мәліметтерді енгізу тілі).[6] Олар екі түрлі жобаларға икемділік қосу үшін Tecgraf-де 1992-1993 жылдары дербес әзірленді (екеуі де инженерлік қосымшаларға арналған интерактивті графикалық бағдарламалар болды) Petrobras компания). SOL және DEL-та ағындарды басқаратын құрылымдардың жетіспеушілігі болды, және Petrobras оларға толық бағдарламалау қуатын қосу қажеттілігінің өсуін сезінді.
Луаның эволюциясы.
1993 жылы жалғыз нақты үміткер болды Tclқосымшаларға енуге арналған. Алайда, Tcl бейтаныс синтаксиске ие болды, деректерді сипаттауға жақсы қолдау көрсете алмады және тек Unix платформаларында жұмыс істеді. Біз қарастырған жоқпыз LISP немесе Схема өйткені олардың достық емес синтаксисі. Python әлі алғашқы сатысында болды. Ол кезде Tecgraf-та билік құрған еркін және өз қолдарымен жұмыс істейтін атмосферада сценарий тілін дамытуға тырысуымыз керек еді ... Тілдің көптеген әлеуетті қолданушылары кәсіби бағдарламашылар болмағандықтан, тіл құпия сөзден аулақ болу керек синтаксис және семантика. Жаңа тілді енгізу өте портативті болуы керек, өйткені Tecgraf клиенттерінде компьютерлік платформалардың жиынтығы өте көп болды. Сонымен, біз Tecgraf-тің басқа өнімдеріне де сценарий тілін енгізу қажет болады деп күткендіктен, жаңа тіл SOL-тен үлгі алуы керек және C API бар кітапхана ретінде ұсынылуы керек.
Lua 1.0 оның объект конструкторлары қазіргі жарық пен икемді стильден сәл өзгеше бола отырып, SOL деректерді сипаттау синтаксисін енгізетін етіп жасалған (сондықтан Луа атауы: Sol сонымен қатар Португал сөзі күн үшін, Луа Ай сөзі болу). Луа синтаксис басқару құрылымдары үшін негізінен қарыз алынды Модула (егер, уақыт, қайталаудейін) әсер етті, бірақ сонымен бірге КЛУ (қарапайым тапсырма ретінде бірнеше тағайындау және функционалды қоңыраулардан бірнеше қайтару анықтамалық параметрлер немесе айқын көрсеткіштер), C ++ (а. мүмкіндік беру туралы ұқыпты идея жергілікті айнымалы тек бізге қажет жерде жариялануы керек [5]), СНОБОЛ және ОҚ (ассоциативті массивтер). Жылы жарияланған мақалада Доктор Доббтың журналы, Луаны жасаушылар да бұл туралы айтады LISP және Схема деректерді құрылымдаудың барлық жерде кездесетін механизмімен ( тізім) олардың кестені Луаның бастапқы құрылымы ретінде жасау туралы шешіміне үлкен әсер етті.[7]
Луа семантика уақыт өте келе схеманың ықпалына ие болды,[5] әсіресе енгізуімен жасырын функциялар және толық лексикалық ауқым. Луаның жаңа нұсқаларында бірнеше мүмкіндіктер қосылды.
Lua 5.0 нұсқасына дейінгі нұсқалары ұқсас лицензиямен шығарылды BSD лицензиясы. 5.0 нұсқасынан бастап Lua лицензиясына сәйкес MIT лицензиясы. Екеуі де бағдарламалық жасақтаманың рұқсат етілген лицензиялары және бірдей.
Ерекшеліктер
Луаны әдетте мультипарадигматіл, әр түрлі проблемалық типтерге сай кеңейтілетін жалпы сипаттамалардың шағын жиынтығын ұсынады. Lua-да нақты қолдау жоқ мұрагерлік, бірақ оны жүзеге асыруға мүмкіндік береді метабельдер. Сол сияқты, Луа бағдарламашыларға іске асыруға мүмкіндік береді атаулар кеңістігі, сыныптар, және басқа кестенің бір кестесін қолданумен байланысты ерекшеліктер; бірінші класты функциялар бастап көптеген техникаларды пайдалануға мүмкіндік береді функционалды бағдарламалау; және толық лексикалық ауқымдылық ұсақ түйіршікті мүмкіндік береді ақпаратты жасыру орындау үшін ең кіші артықшылық принципі.
Жалпы, Луа қарапайым, икемді болуға тырысады мета-ерекшеліктер бір бағдарламалау парадигмасына тән мүмкіндіктер жиынтығынан гөрі қажет болған жағдайда кеңейтілуі мүмкін. Нәтижесінде негізгі тіл болып табылады жарық- толық анықтама аудармашы шамамен 247 құрайдыкБ құрастырылған[3]- және көптеген қосымшаларға оңай бейімделеді.
Луа - а динамикалық терілген ретінде қолдануға арналған тіл кеңейту немесе сценарий тілі және әр түрлі хост платформаларына сыятындай жинақы. Ол сияқты атомдық деректер құрылымдарының аз мөлшерін ғана қолдайды логикалық мәндер, сандар (екі дәлдік) өзгермелі нүкте және 64 биттік бүтін сандар әдепкі бойынша), және жіптер. Сияқты типтік деректер құрылымдары массивтер, жиынтықтар, тізімдер, және жазбалар Луаның түпнұсқалық дерек құрылымын, кесте негізінде ұсынуға болады, ол негізінен гетерогенді ассоциативті массив.
Lua сияқты жетілдірілген мүмкіндіктердің шағын жиынтығын жүзеге асырады бірінші класты функциялар, қоқыс шығару, жабылу, дұрыс құйрық қоңыраулары, мәжбүрлеу (орындау кезінде жол мен сан мәндерінің арасындағы автоматты түрлендіру), коруотиндер (көпжақты ынтымақтастық) және динамикалық модульді жүктеу.
Луа да қолдайды жабылу, төменде көрсетілгендей:
Айнымалының жаңа жабылуы х әр уақытта жасалады қосу деп аталады, сондықтан қайтарылған әрбір жаңа анонимді функция әрқашан өзіне қол жетімді болады х параметр. Жабуды басқа объектілер сияқты Луаның қоқыс жинаушысы басқарады.
Кестелер - бұл мәліметтер құрылымының маңызды құрылымы (және дизайн бойынша жалғыз кіріктірілген) мәліметтердің құрама түрі) Луада және қолданушы жасаған барлық типтердің негізі болып табылады. Олар ассоциативті массивтер автоматты сандық кілт пен арнайы синтаксисті қосу арқылы.
Кесте жиі қолданылады құрылым (немесе жазба) пайдалану арқылы жіптер кілттер ретінде. Мұндай қолдану өте жиі кездесетіндіктен, Lua осындай өрістерге қол жеткізу үшін арнайы синтаксисті ұсынады.
Байланысты функцияларды сақтау үшін кестені қолдану арқылы ол аттар кеңістігінің рөлін атқара алады.
Кестелерге автоматты түрде сандық кілт тағайындалады, бұл оларды an ретінде қолдануға мүмкіндік береді массивтің мәліметтер типі. Бірінші автоматты индекс көптеген басқа бағдарламалау тілдеріндегідей емес, 0-ден 1-ге тең (бірақ 0 индексіне рұқсат етілген).
Кестенің ұзындығы т кез келген бүтін индекс ретінде анықталған n осындай t [n] емес нөл және t [n + 1] болып табылады нөл; сонымен қатар, егер t [1] болып табылады нөл, n нөлге тең болуы мүмкін. 1-ден берілгенге дейінгі нөлдік емес мәндермен тұрақты жиым үшін n, оның ұзындығы дәл осы n, оның соңғы мәнінің индексі. Егер массивтің тесіктері болса (яғни, нөлге тең емес басқа мәндер арасында болса), онда # т а-ның алдында тұрған кез-келген индекстер болуы мүмкін нөл мәні (яғни кез келген нөл мәнін жиымның соңы ретінде қарастыруы мүмкін).
Массивті эмуляциялау үшін хэш ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz