Ликбез по Lua

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Ликбез по Lua

Post by John Doe »

В данной теме задаём вопросы по Lua.

Для того, чтобы получить начальное представление о языке достаточно почитать какую-нибудь короткую обзорную статью, например:
Для более близкого знакомства рекомендую эти документы:
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Max Rusov »

Latest post of the previous page:

Shmuel wrote:Ну а как вы себе это представляете
Не знаю. Но придумали же они синтаксис с присвоением, я такого тоже не ожидал. Ну, может, как то так:

Code: Select all

if FindSomething(),Index and Index > 0 then
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

Увы, такого нет.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Цикл в Lua

Post by Shmuel »

gotar wrote:Как организовать цикл по директориям в переменной PATH?

Например:

path="abc;def;ghk"
for p in iterator(path) do print(p) end
печатало бы
abc
def
ghk

Существует ли подходящий итератор?

Code: Select all

for p in path:gmatch("[^;]+") do print(p) end
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Re: Цикл в Lua

Post by gotar »

большое спасибо
Если я назову свою функцию именем run я пересекусь с какой нибудь стандартной функцией?
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Цикл в Lua

Post by HaRT »

Если учесть, что ‘;’ может встречаться в путях, заключённых в двойные кавычки, то разбор усложняется.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Цикл в Lua

Post by Shmuel »

gotar wrote:Если я назову свою функцию именем run я пересекусь с какой нибудь стандартной функцией?
Вроде нет.
HaRT wrote:Если учесть, что ‘;’ может встречаться в путях, заключённых в двойные кавычки, то разбор усложняется.
Естественно.
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Re: Цикл в Lua

Post by gotar »

Спасибо. как в luafar по имени файла проверить что файл является обычным файлом( не каталогом)?
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Цикл в Lua

Post by Shmuel »

gotar wrote:как в luafar по имени файла проверить что файл является обычным файлом( не каталогом)?

Code: Select all

not win.GetFileAttr(FileName):find("d") 
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Re: Ликбез по Луа

Post by gotar »

Как перейти на следующую итерацию цикла?
Что поставить вместо continue в
for i=1,5 do if i==3 then continue end print(i) end

чтобы не обращать условие?
Last edited by gotar on Mon 11 Mar, 2013 23:15, edited 1 time in total.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Ликбез по Луа

Post by Shmuel »

"Вместо continue" ничего не поставишь, иначе это было бы continue.
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Re: Ликбез по Луа

Post by gotar »

Т.е. перейти на следующую итерацию цикла нельзя?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Ликбез по Луа

Post by NightRoman »

Shmuel wrote:"Вместо continue" ничего не поставишь, иначе это было бы continue.
В некоторых языках, вроде, еще next.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Ликбез по Луа

Post by Shmuel »

gotar wrote:Т.е. перейти на следующую итерацию цикла нельзя?
Ну вы же сами написали "обратить условие", чего же ещё?

Есть разные техники "как обходиться без continue", многократно обсуждалось в Lua mailing list. Мне бы не хотелось начинать подобное обсуждение ещё раз.
На мой взгляд, главный автор Lua зря не хочет включать continue в язык, но у него своё мнение.
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Re: Ликбез по Луа

Post by gotar »

Существует ли итератор по файлам текущей директории для luafar?
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Ликбез по Луа

Post by Shmuel »

1. far.RecursiveSearch
2. far.GetDirList
3. io.popen("dir /B")
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Ликбез по Луа

Post by zg »

gotar wrote:Существует ли итератор по файлам текущей директории для luafar?
а разве в фаре есть понятие «текущая директория» при отсутствии анси плагинов?
Post Reply

Return to “Нужна помощь”