首页 > 解决方案 > 为什么 Juila 模块必须以点为前缀?

问题描述

为什么模块using .A必须以 dot 为前缀?如果省略点,它将不起作用。

文件./A.jl

module A
  export sayHi
  function sayHi() 
    println("hi")
  end
end

文件./Main.jl

include("./A.jl")
using .A # <= Why it has to be prefixed with dot?

sayHi()

运行,启动 REPL 并输入

include("./Main.jl")

第2部分

如果你将文件移动A.jl到不同的位置,就像../some-dir/A.jl它必须以两个点 using ..A为前缀。为什么?

标签: julia

解决方案


因为您在当前模块中定义了模块 A。点的意思是“在当前模块内部查看这个”。https://docs.julialang.org/en/v1/manual/modules/#Relative-and-absolute-module-paths-1


推荐阅读