Erlang 的 模块

模块

  • 模块是 Erlang 的基本代码单元
  • 模块文件的扩展名为.erl
  • 必须先编译才能运行模块里的代码
  • 编译后的模块以 .beam 作为扩展名
  • 首字母小写,模块名与文件名相同。模块名是一个原子(atom)
  1. 创建模块文件
    % 模块文件 geometry.erl
    -module(geometry). % 声明 geometry 模块
    -export([area/1]). % 导出方法,area 为方法名,/1 表示该方法有一个参数
    -import(other, [fn1/1,fn2/2]). % 导入其它文件和方法
    
    % 计算长方形的面积
    % 执行 geometry:area({rectangle, 10, 5} 时
    % 进行匹配 Width = 10 和 Height = 5
    % 匹配成功后 执行 -> 后的代码 Width * Height,即50
    % 没有显式的返回语句,用最后一句表达式的值作为返回值
    area({rectangle, Width, Height}) -> Width * Height; % 注意分号结尾
    % 随时添加支持的图像代码
    area({circle, Radius}) -> 3.14159 * Radius * Radius; % 后加的
    area({square, Side}) -> Side * Side. % 句号结尾
    
  2. 在 Erlang Shell 中 编译并执行模块代码
    1> c(geometry).
    {ok,geometry}
    2> geometry:area({rectangle, 10, 5}).
    50
    3> geometry:area({square, 3}).
    9
    
  3. 测试代码(随手,生产环境还是用功能全的测试代码)
        -module(geometry).
        -export([area/1]).
        
        test() ->
            12 = area({rectangle, 3, 4}),
            144 = area({square, 12}),
            tests_wored.
        
        area({rectangle, Width, Height}) -> Width * Height;
        area({square, Side}) -> Side * Side.
    
发布了33 篇原创文章 · 获赞 2 · 访问量 2020

猜你喜欢

转载自blog.csdn.net/wwwmewww/article/details/102557039