Tso tawm Lua 5.4 programming lus

Tom qab tsib xyoos ntawm kev loj hlob muaj tso tawm Lua 5.4, ceev thiab compact scripting programming lus uas yog dav siv raws li ib tug embedded lus (piv txwv li, rau txhais configuration los yog sau ntawv extensions). Lua tus neeg txhais lus code sau hauv C thiab faib los ntawm nyob rau hauv MIT daim ntawv tso cai.

Lua muab cov txheej txheem yooj yim syntax nrog cov ntaub ntawv piav qhia muaj peev xwm los ntawm kev siv cov arrays sib koom thiab txuas ntxiv cov lus ntawm cov lus. Lua siv dynamic typing, converting language constructs in bytecode that runs on top of a register-based virtual machine with automatic garbage collection. Tus neeg txhais lus nws tus kheej yog tsim los ua lub tsev qiv ntawv uas tuaj yeem yooj yim sib xyaw ua haujlwm hauv C thiab C ++ hom lus.

ntsiab kev tsim kho tshiab:

  • Ib hom tshiab ntawm kev ua haujlwm ntawm cov khoom siv khib nyiab tau ua tiav - "tiam neeg", uas tau ntxiv rau yav dhau los muaj cov khoom siv khib nyiab ntxiv. Hom tshiab no suav nrog kev khiav ib qho luv luv nkag mus ntau zaus, npog tsuas yog cov khoom tsim tsis ntev los no. Tag nrho traversal ntawm tag nrho cov khoom yog ua tau tsuas yog yog hais tias, tom qab ib tug luv luv traversal, nws tsis muaj peev xwm mus cuag lub siab xav noj. Txoj hauv kev no tso cai rau koj kom ua tiav qhov kev ua tau zoo dua thiab txo qis kev siv lub cim xeeb thaum khaws cia ntau cov khoom siv nyob rau lub sijhawm luv.
  • Ntxiv lub peev xwm los txhais cov kev hloov pauv tas li uas tau hais tseg nrog "const" tus cwj pwm. Cov kev hloov pauv no tuaj yeem raug muab tso rau ib zaug thiab, ib zaug pib, hloov tsis tau.
  • Ntxiv kev txhawb nqa rau kev hloov pauv "kom-tau-kaw", uas tau muab los siv "kaw" tus cwj pwm thiab zoo li qhov sib txawv hauv zos tsis tu ncua (nrog rau tus cwj pwm const), txawv ntawm lawv nyob rau hauv uas tus nqi raug kaw (tus "__close" txoj kev hu ua) thaum twg lub Scope yog tawm, piv txwv li, Tom qab qhov ua tiav ntawm qhov thaiv, kev hloov pauv siv so / goto / rov qab los yog tawm thaum muaj teeb meem tshwm sim.
  • Hom "cov ntaub ntawv", uas muab lub peev xwm khaws cov ntaub ntawv C hauv Lua qhov sib txawv (sawv cev rau cov ntaub ntawv thaiv hauv lub cim xeeb lossis muaj C pointer), tam sim no tuaj yeem muaj ntau qhov tseem ceeb (muaj ntau yam metatables).
  • Ib qho kev siv tshiab ntawm kev ua haujlwm rau kev tsim cov lej pseudorandom tau nthuav tawm - math.random.
  • Ntxiv ib qho kev ceeb toom uas tau txiav txim siab siv cov lus qhia ceeb toom thiab, tsis zoo li qhov yuam kev, tsis cuam tshuam rau kev ua tiav ntawm qhov program.
  • Ntxiv cov ntaub ntawv debugging txog kev sib cav muaj nuj nqi thiab rov qab muaj nuj nqis.
  • Ib tug tshiab semantics tau npaj rau enumerating integers nyob rau hauv loops "rau". Tus naj npawb ntawm iterations yog xam ua ntej lub voj pib, uas tsis txhob sib txawv thiab sib txawv. Yog tias tus nqi pib ntau dua li tus nqi txwv, qhov yuam kev tshwm sim.
  • Hauv kev ua haujlwm 'string.gmatch' ntxiv qhov kev xaiv xaiv tshiab 'init', uas txiav txim siab ntawm txoj haujlwm twg los pib tshawb nrhiav (los ntawm lub neej ntawd, los ntawm 1 tus cim).
  • Tshiab nta ntxiv 'lua_resetthread'(rov pib dua cov xov, tshem tawm tag nrho cov pawg hu thiab kaw txhua qhov "kom-rau-kaw" hloov pauv) thiab 'coroutine.kaw'(kaw lub coroutine thiab tag nrho cov cuam tshuam "rau-rau-kaw" cov hloov pauv).
  • Kev ua haujlwm rau kev hloov cov hlua rau cov lej tau hloov mus rau "txoj hlua" tsev qiv ntawv.
  • Hu rau lub cim xeeb faib ua haujlwm tam sim no tuaj yeem ua tsis tiav yog tias lub cim xeeb thaiv qhov loj me raug txo.
  • Hauv kev ua haujlwm 'string.format' ntxiv kev txhawb nqa rau tus qauv tshiab tshwj xeeb '%p' (pointer xa rov qab los ntawm lua_topointer).
  • Lub tsev qiv ntawv utf8 muab kev txhawb nqa cov cim cim nrog cov lej mus txog 2^31.

Tau qhov twg los: opennet.ru

Ntxiv ib saib