Size: a a a

2021 February 19

T

The Dormouse in pro.lua
Aydar Zarifullin
Нормально ли для такого случая создавать функцию-предикат вида isMyStruct?
Вероятно, есть смысл сделать какую-нибудь функцию typeof, понимающую твои типы.
источник

AZ

Aydar Zarifullin in pro.lua
The Dormouse
userdata
Спасибо.
источник

AZ

Aydar Zarifullin in pro.lua
Тупой вопрос: чем отличаются package.loaded и package.preload ?

package.loaded is a table, where the already loaded modules are stored by name. As mentioned before, this acts as a cache so that modules aren't loaded twice, instead require first tries getting the module from this table, and if it's false or nil, then it tries loading.

package.preload is a table of functions associated with module names. Before searching the filesystem, require checks if package.preload has a matching key. If so, the function is called and its result used as the return value of require.  

описание не очень ясное
источник

T

The Dormouse in pro.lua
Aydar Zarifullin
Тупой вопрос: чем отличаются package.loaded и package.preload ?

package.loaded is a table, where the already loaded modules are stored by name. As mentioned before, this acts as a cache so that modules aren't loaded twice, instead require first tries getting the module from this table, and if it's false or nil, then it tries loading.

package.preload is a table of functions associated with module names. Before searching the filesystem, require checks if package.preload has a matching key. If so, the function is called and its result used as the return value of require.  

описание не очень ясное
package.loaded — кэш модулей, чтобы не загружать каждый раз, когда ты вызываешь require для одного и того же модуля.
package.preload позволяет обойти механизм загрузки из ФС. Его используют некоторые штуки для сборки Lua-проектов в один скрипт, например, lua-amalg.
источник

T

The Dormouse in pro.lua
Aydar Zarifullin
Тупой вопрос: чем отличаются package.loaded и package.preload ?

package.loaded is a table, where the already loaded modules are stored by name. As mentioned before, this acts as a cache so that modules aren't loaded twice, instead require first tries getting the module from this table, and if it's false or nil, then it tries loading.

package.preload is a table of functions associated with module names. Before searching the filesystem, require checks if package.preload has a matching key. If so, the function is called and its result used as the return value of require.  

описание не очень ясное
Для примера можешь посмотреть, например, собранный с помощью lua-amalg в один файл Moonscript: https://raw.githubusercontent.com/Penguinum/Moonyscript/master/moonyscript.lua
источник

AZ

Aydar Zarifullin in pro.lua
The Dormouse
package.loaded — кэш модулей, чтобы не загружать каждый раз, когда ты вызываешь require для одного и того же модуля.
package.preload позволяет обойти механизм загрузки из ФС. Его используют некоторые штуки для сборки Lua-проектов в один скрипт, например, lua-amalg.
А, да действительно. Опять не тем местом читаю, спасибо еще раз

require ищет в package.preload функцию если находит исполняет и возвращает то что вернула функция
источник

S

Snusmumriken in pro.lua
Aydar Zarifullin
А, да действительно. Опять не тем местом читаю, спасибо еще раз

require ищет в package.preload функцию если находит исполняет и возвращает то что вернула функция
У require есть набор loader'ов, можно сделать произвольный загрузчик скриптов, хоть с гитхаба или ещё как-нибудь.
http://lua-users.org/wiki/LuaModulesLoader
И да, оно пробегает сначала по loaded за кешем, потом лезет в preload на случай загрузки, потом проходит по списку своих loader'ов, которые уже дёргают package.path/cpath и т.д.
источник

🅹

🅹🆄🆁🅸🅰️🆂... in pro.lua
Привет всем
источник

S

Snusmumriken in pro.lua
источник

a

anton in pro.lua
хм, луа может так:
local function method(fnc, x1, x2, x3)
 return function(x)
   return x[fnc](x, x1, x2, x3)
 end
end

но не может так:
local function method(fnc, ...)
 return function(x)
   return x[fnc](x, ...)
 end
end
источник

VG

Vladislav Grubov in pro.lua
может так:
local function method(fnc, ...)
  local n = select('#', ...)
  local args = {...}
  return function(x)
     return x[fnc](x, unpack(args, 1, n))
  end
end
источник

S

Snusmumriken in pro.lua
anton
хм, луа может так:
local function method(fnc, x1, x2, x3)
 return function(x)
   return x[fnc](x, x1, x2, x3)
 end
end

но не может так:
local function method(fnc, ...)
 return function(x)
   return x[fnc](x, ...)
 end
end
local function method(fnc, ...)
 local args = {...}
 return function(x)
   return x[fnc](x, unpack(args))
 end
end
источник

f

fgntfg in pro.lua
источник

VG

Vladislav Grubov in pro.lua
Snusmumriken
local function method(fnc, ...)
 local args = {...}
 return function(x)
   return x[fnc](x, unpack(args))
 end
end
а как же nil'ы? 🙂
источник

S

Snusmumriken in pro.lua
(забей)
источник
2021 February 20

a

anton in pro.lua
Спасибо!
источник

AM

Alexey Melnichuck in pro.lua
args={n=select('#', ...), ...}
unpack(args, 1, args.n)
источник
2021 February 21

G

Gert in pro.lua
Подскажите пожалуйста, можно ли подключить Torch lua к quiklua? Там просто jit компиляция, я не достаточно понимаю эту технологию
источник

S

Snusmumriken in pro.lua
Gert
Подскажите пожалуйста, можно ли подключить Torch lua к quiklua? Там просто jit компиляция, я не достаточно понимаю эту технологию
Примерно никак.
Ну, точнее можно. Берёшь и пишешь два приложения: одно для QLUA, другое для Luajit, потом связываешь их например сокетом.
источник

S

Snusmumriken in pro.lua
Qulinxao, RailAxmetov, отзовитесь. Это приказ.
источник