`
凌川__
  • 浏览: 83799 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

7.4 require 和 load

阅读更多

程序 E7.3-1.rb中先写了Me模块,然后include  Me模块,实现了Mix-in功能,但是,这样没能做到代码复用。
我将 Me模块写在文件 E7.4-1.rb中,将 Person类写在文件 E7.4-2.rb中,这时候 Student类如何使用 Me模块和 Person类呢?这里要用到require方法。
看程序 E7.4-3.rb :

ruby 代码
  1. #E7.4-3.rb     
  2. require "E7.4-1"  
  3. require "E7.4-2"  
  4.   
  5. class Student < Person   
  6.   include Me   
  7. end  
  8.   
  9. aStudent=Student.new  
  10. aStudent.talk              # =>  I'm talking.   
  11. puts aStudent.sqrt(77,2)     # =>  8.77496438739435  



使用 require方法让你的程序文件变得简洁有力。 require方法包含另一个文件,另一个文件名需要是一个字符串。
还有一个 load 方法与require 方法相对应,也用来包含另一个文件。
看程序 E7.4-4.rb :

ruby 代码
  1. #E7.4-4.rb     
  2. load "E7.4-1.rb"  
  3.   
  4. class Student     
  5. end  
  6.   
  7. aStudent=Student.new  
  8. aStudent.extend(Me)   
  9. puts aStudent.sqrt(100.1, 12)  # =>  10.0049987506246  



require包含文件,只加载一次,遇到同一文件时自动忽略;不同路径下的同名文件会多次加载。 load包含文件,加载多次,即使是相同路径下同一文件。
总结一下:
 require,load用于包含文件;include,extend则用于包含模块。
 require加载文件一次,load加载文件多次。
 require加载文件时可以不加后缀名,load加载文件时必须加后缀名。
 require一般情况下用于加载库文件,而load用于加载配置文件。
利用load 多次加载文件的特性,可以用来实现程序的无缝升级和系统的热部署。程序功能改变了,你只需要重新load 一次,其它代码与它再次交互的时候,这个程序实际上已经不是原来的程序了。

 

完整阅读,请看我写的 Ruby语言中文教程all in one    
 

分享到:
评论

相关推荐

    ixed.7.4_ixed.7.4.lin下载_ixed.7.4_TheNumber_

    controllers/Main.phpLine Number: 2Backtrace:File: C:\xampp8\htdocs\html\application\controllers\Main.phpLine: 2Function: sg_loadFile: C:\xampp8\htdocs\html\index.phpLine: 315Function: require_once

    PHPexcel适合7.4版本

    PHP 7.4引入了许多性能优化和语法改进,尽管PHPExcel没有明确声明对PHP 7.4的支持,但经过社区的努力,大部分功能已经可以在PHP 7.4上正常运行。然而,需要注意的是,由于PHP 7.4对一些过时函数的移除,可能需要更新...

    php导入EXCEL插件

    $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); // 获取第一个工作表 $worksheet = $objPHPExcel-&gt;getActiveSheet(); // 读取A1单元格 $a1CellValue = $worksheet-&gt;getCell('A1')-&gt;getValue(); // ...

    PHPExcel-1.8

    它支持多种Excel文件格式,包括旧版的BIFF(Binary Interchange File Format)格式(如XLS)和较新的OOXML(Office Open XML)格式(如XLSX)。这使得开发者能够处理不同版本的Excel文件,无论是在读取还是写入数据...

    分享PHPExcel超级好用的实用工具类

    如果你使用Composer管理依赖,可以在终端中运行`composer require phpoffice/phpexcel`。然后,通过`require_once 'vendor/autoload.php';`引入自动加载文件,以便在代码中使用PHPExcel类库。 2. **创建新工作簿** ...

    php版 dompdf

    require_once 'path/to/dompdf/autoload.inc.php'; use Dompdf\Dompdf; $html = '&lt;h1&gt;Hello, World!&lt;/h1&gt;'; $dompdf = new Dompdf(); $dompdf-&gt;loadHtml($html); $dompdf-&gt;setPaper('A4', 'portrait'); $dompdf-&gt;...

    phpoffice/phpexcel,的使用

    composer require phpoffice/phpexcel ``` 安装完成后,你可以在项目中引入这个库,通过`use`语句引用所需的类: ```php use PHPExcel; use PHPExcel_IOFactory; ``` 接着,我们来看如何读取和写入Excel文件。...

    PHP和MySQL Web开发第4版pdf以及源码

    5.2 使用require()和include()函数 5.2.1 文件扩展名和require()语句 5.2.2 使用require()制作Web站点的模版 5.2.3 使用auto_prepend_file和auto_append_file 5.3 在PHP中使用函数 5.3.1 调用函数 5.3.2 调用...

    ruby语法基础教程

    §8.4 Require, load和include 62 第九章 异常 64 §9.1 异常处理 64 §9.2 定义异常类 68 §9.3 catch和throw 68 第十章 多任务处理 69 §10.1 多线程处理 69 §10.1.1 线程创建 69 §10.1.2 线程操作 70 §10.1.3 ...

    PHP和MySQL WEB开发(第4版)

    5.2 使用require()和include()函数 5.2.1 文件扩展名和require()语句 5.2.2 使用require()制作Web站点的模版 5.2.3 使用auto_prepend_file和auto_append_file 5.3 在PHP中使用函数 5.3.1 调用函数 5.3.2 调用未定义...

    PHP和MySQL Web开发第4版

    5.2 使用require()和include()函数 5.2.1 文件扩展名和require()语句 5.2.2 使用require()制作Web站点的模版 5.2.3 使用auto_prepend_file和auto_append_file 5.3 在PHP中使用函数 5.3.1 调用函数 5.3.2 调用...

    ruby初学者教程(对初学者很有帮助)

    **8.4 Require, load和include** `require`和`load`用于加载外部文件,`include`用于将模块混合到类中。 ```ruby require 'my_module' ``` #### 九、异常 **9.1 异常处理** Ruby使用`begin...rescue...end`块来...

    Ruby入门教程

    **8.4 Require, load和include** - `require`:加载Ruby文件。 - `load`:加载Ruby文件,但不会检查是否已经加载过。 - `include`:用于引入模块。 #### 九、异常 **9.1 异常处理** 异常处理机制可以帮助程序在...

    Ruby程序设计.doc

    **8.4 Require, load和include** - **require/load:** 用于加载外部的Ruby文件。 - **include:** 用于将一个模块混合到当前类中。 #### 九、异常 **9.1 异常处理** Ruby提供了try/catch风格的异常处理机制。 ...

    Ruby经典学习教程(口碑不错)

    **8.4 Require, load和include** - `require`用于加载外部的Ruby文件。 - `load`用于动态加载文件,常用于脚本环境。 - `include`用于将模块包含进类中。 #### 九、异常 **9.1 异常处理** - 使用`begin...rescue...

    SAMBA 24学时教程

    7.4 权限 77 7.4.1 文件和目录创建参数 79 7.4.2 一些例子 80 7.5 特殊文件服务 82 7.6 文件名称处理和修正 82 7.6.1 mangled names 84 7.6.2 mangle case 84 7.6.3 mangling char 84 7.6.4 case sensitive 84 7.6.5...

    yii2-image:Yii2扩展用于图像处理

    "require" : { "mervick/yii2-image" : "~1.0" } 在该执行php composer.phar update 用法 简单的 $ driver = \mervick\image\drivers\ GD :: classname (); // or `\mervick\image\drivers\Imagick::classname...

    Ruby程序设计(简洁清新的教程)

    **8.4 Require, load和include** `require`和`load`用于加载其他Ruby文件,`include`用于将模块混入到类中。 #### 八、异常 **9.1 异常处理** Ruby使用`begin...rescue...end`结构来捕获和处理异常: ```ruby ...

    RUBY基础入门指南

    **8.4 Require, load和include** - `require`:加载并执行指定文件。 - `load`:加载文件,不会缓存。 - `include`:将模块混入到类中。 #### 九、异常 **9.1 异常处理** 可以使用`begin...rescue...ensure......

Global site tag (gtag.js) - Google Analytics