无法找到模块“mint-ui”的声明文件_Julia系列教程9--模块

78f6510f03855b81df2d8046043214a1.png
90853a7edca4397810345f322c0cdc46.png
Julia教程--模块https://www.zhihu.com/video/1106658741998538752

模块

模块是一些互相隔离的工作空间,用法上类似于Python中的库,在Python中导入库时,使用import * as *的方式,在Julia中,采用using或import导入要使用的模块

我们的模块内容如下

module MyModule

export my_square, my_abs

# square function
my_square(x::Int64) = x * x

# abs function
my_abs(x) = (x>=0) ? x : -x

# add function 
my_add(x,y) = x + y

# minus function 
my_minus(x,y) = x - y

# multiply function
my_multiply(x,y) = x * y

end

在REPL中或者vscode(Atom)中运行using MyModule时,会提示错误如下

REPL中提示错误

a2a60a9a11dc9c3f3b71f69201ead276.png

vscode中提示错误

179da8188a44854ee40199be07bafef5.png

这是因为Julia中并未找到该Module的位置,我们可以手动添加进来,在程序的最开始,加上push!(LOAD_PATH, ".").表示当前工作目录,也可以把.换成绝对目录;也可以先用cd dir的命令切换到我们的Module的目录,再直接使用push!(LOAD_PATH, "."),这样就可以正确的调用MyModule了。

如果不想在程序中写出来,也可以在~/.julia/config/startup.jl文件中写明,该文件指明了程序运行时需要执行哪些操作。在Windows中,~指的是C:UserUserName目录;MAC的~指的是UserUserName目录。

MyModule中的export是将这两个函数导出来,这样就可以直接使用my_squaremy_abs函数,而不必非要使用MyModule.my_squareMyModule.my_abs
调用模块的代码如下

using MyModule
using MyModule:my_add, my_multiply
res1 = MyModule.my_square(2)
res2 = my_square(3)
res3 = my_abs(-4)
res5 = my_add(3,4)  
res6 = MyModule.my_minus(4,3)
res7 = my_minus(4,3) # error

我们还可以使用import MyModule语句,基本用法相同,如果申明了export就可以不用加模块名,没声明的话要加模块名,不同的地方在于如果是函数的话,using不允许给他们增加新的方法,只能使用他们,而import不仅可以使用,还可以为其增加新的方法。

import MyModule
my_square(x::Float64) = x * x
res = my_square(2.3)
println(res)

模块和文件

模块和文件并没有关系,一个模块可以有多个文件,一个文件也可以有多个模块

一个模块多个文件

module MyModu

include("file1.jl")
include("file2.jl")

end

一个文件多个模块

module Test1
include("file1.jl")
end

module Test2
include("file2.jl")
end

标准模块

有三个非常重要的标准模块:Main,Core 和 Base

Main 是最顶层的模块,Julia 启动后会将 Main 设置为当前模块。在提示符下定义的变量会进入到 Main,执行 varinfo() 会列出 Main 中的变量。

Core 包含所有语言内置的标识符(语言的核心部分,不是库),每个模块都默认声明了 using Core(否则的话啥也做不了)。

Base 模块包含了一些基本的功能(即源码中 base/ 目录下的内容)。所有模块都默认包含了 using Base,因为对大多数库来说,都会用到。

在网易云课堂上搜索《Julia教程 从入门到进阶》可以看到所有免费教程视频
微信公众号:Quant_Times

Julia系列教程

1 Julia简介及安装

2 REPL的使用及Julia中的变量

3 数学运算 矩阵运算

4 函数 方法 多重分派

5 控制流

6 类型

7 绘图

8 文件操作

9 模块

10 元编程

11 并行计算

12 科学计算

13 如果写出高性能的Julia代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值