【发布时间】:2022-08-24 20:44:56
【问题描述】:
我的代码如下,Mechanics.Disk.InventoryMap.Shelf是嵌套的,我想使用别名Shelf,编译器给出错误信息
defmodule Mechanics.Disk.InventoryMap do
alias __MODULE__
alias Mechanics.Disk.InventoryMap.Shelf
defmodule Mechanics.Disk.InventoryMap.Shelf do
@enforce_keys [:shelfIdX,:shelfIdY,:shelfIdZ]
defstruct [:shelfIdX,
:shelfIdY,
:shelfIdZ
]
end
def new(LibraryTemplate, lineSize,levelSize) do
for i <- 0..lineSize,j <- 0..levelSize,k <- [0,1] do
{{i,j,k},%Shelf{shelfIdX: i,shelfIdY: j, shelfIdZ: k}} # <---- error here
end
end
错误信息如下:
[{
\"resource\": \"/Users/yuchen/Documents/Project/CY2/mechanics/lib/mechanics/disk/InventoryMap.ex\",
\"owner\": \"_generated_diagnostic_collection_name_#0\",
\"severity\": 8,
\"message\": \"(CompileError) Mechanics.Disk.InventoryMap.Shelf.__struct__/1 is undefined, cannot expand struct Mechanics.Disk.InventoryMap.Shelf. Make sure the struct name is correct. If the struct name exists and is correct but it still cannot be found, you likely have cyclic module usage in your code\",
\"source\": \"Elixir\",
\"startLineNumber\": 49,
\"startColumn\": 5,
\"endLineNumber\": 49,
\"endColumn\": 59
}]
-
您想引用尚未编译的模块,您是否尝试过将嵌套模块移动到另一个文件?
标签: elixir