`

require,include,load,extend的用途和区别

阅读更多

这四个方法还是很好玩很有用,也是比较容易混的。 

 

 

 1.require( aString ) -> true or false

 

   Ruby试图载入一个名为aString的库,如果成功了就返回true,否则返回false。如果给定的值不是一个绝对路径,那么将会在$:中查找。如果给定的名字带有.rb,则作为源文件载入;如果扩展名为.so,.o,.dll等(根据不同平台),Ruby将这些作为扩展程序来载入;否则,Ruby会自动尝试在给定的文件名后面加.rb,.so,.dll等。已经载入的库会放到数组$"中,已经在$"里的则不会被重复装载。比如:

 

 

 

require "my-library.rb"

 

require "db-driver"

 

 

 

 

 

2.load( aFileName, wrap=false ) -> true

 

 

 

装载并执行aFileName文件,文件搜索方法同上面的require。wrap是可选参数,默认为false,如果设为true,则这个文件将在匿名模块下运行,从而包括调用者的名字空间。任何aFileName里面的局部变量在装载它的环境下是不可用的。

 

 

 

3.include

 

include主要用来将一个模块插入(mix)到一个类或者其它模块。这个模块的方法在引入它的类或模块中以函数的形式调用(没有一个receiver)。这个指令运行时会执行Module.append_features方法。

 

 

 

 

 

4.extend

 

extend 用来在一个对象(object,或者说是instance)中引入一个模块,这个类从而也具备了这个模块的方法。

 

 

 

module Mod

 

  def hello2

 

    "Hello from Mod.n"

 

  end

 

end

 

 

 

class Klass

 

  def hello

 

    "Hello from Klass.n"

 

  end

 

end

 

 

 

k = Klass.new

 

k.hello   #"Hello from Klass.n"

 

k.hello2  # NoMethodError: undefined method `hello2' …

 

k.extend(Mod)   #<0x2e4c530>

 

k.hello  #"Hello from Mod.n"

分享到:
评论

相关推荐

    Ruby中require、load、include、extend的区别介绍

    ### Ruby中require、load、include、extend的区别介绍 在Ruby编程语言中,为了实现代码的重用和组织,开发者经常需要引入外部文件或模块。在这一过程中,`require`、`load`、`include`、`extend`这几个关键字发挥了...

    include和require的区别

    首先,`require`和`include`在处理文件不存在或加载失败时的反应不同。当使用`require`尝试引入一个不存在的文件时,PHP会抛出一个致命错误(Fatal Error),并停止脚本的执行。这意味着如果`require`的文件未找到或...

    动态加载的艺术:Ruby中require与load的区别

    虽然它们在某些情况下可以互换使用,但在行为和用途上却有着明显的不同。了解这些差异可以帮助开发者更有效地组织和管理代码,从而提高程序的可维护性和性能。 #### Ruby 语言特性概述 Ruby 是一种高级、面向对象...

    storyflow#PHPer#include和require的区别1

    include、include_once、require、require_once的区别require和include的区别require 和 include

    PHP中include与require使用方法区别详解

    在PHP变成中,include()与require()的功能相同,include(include_once) 与 require(require_once)都是把把包含的文件代码读入到指定位置来,但是二者再用法上有区别:(include()是有条件包含函数,而require()...

    require(),include(),require_once()和include_once()区别

    首先,`require()`和`include()`函数用于在脚本执行期间包含并运行指定文件的代码。它们之间的主要区别在于它们处理包含文件失败时的错误处理方式。`require()`在遇到无法包含的文件时会产生一个致命错误(fatal ...

    PHP中include和require的区别实例分析

    所以,了解include和require的区别,并根据实际情况选择合适的文件包含方式,是保证代码质量的重要因素。在实际开发过程中,选择require还是include应该基于项目需求和错误处理策略。如果文件不存在将会导致严重错误...

    PHP包含文件函数include、include_once、require、require_once区别总结

    include() 、require()语句包含并运行指定文件。这两结构在包含文件上完全一样,唯一的区别是对于错误的处理。require()语句在遇到包含文件不存在,或是出错的时候,就停止即行,并报错。include()则继续即行。

    php include,include_once,require,require_once

    首先,我们来解释一下include和include_once的区别。include语句用于在当前文件的执行过程中包含并运行指定的文件。如果被包含的文件不存在或者因为某些原因包含失败,那么include语句会产生一个警告,但是它并不会...

    php include和require的区别深入解析

    include() 产生一个警告而require() 则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用require()。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。当一个...

    深入理解require与require_once与include以及include_once的区别

    在PHP编程中,`require`、`require_once`、`include`和`include_once`都是用于引入其他PHP文件的关键函数,它们有助于实现代码重用和模块化编程。这些函数之间的主要区别在于它们处理重复导入的方式。 1. `require...

    require(),include(),require_once()和include_once()的异同

    `require_once()` 和 `include_once()` 分别是 `require()` 和 `include()` 的变体,它们的区别在于,这两个函数会检查文件是否已经被包含过。如果文件已经被包含,那么它们就不会再次执行包含操作。这是防止重复...

    extend:使一个类(构造函数)从另一类继承

    用法 成分 var extend = require ( "extend" ) ;... o var extend = require ( "gamtiq/extend" ) ;... 节点 var extend = require ( "./path/to/dist/extend.js" ) ;... 果酱 require ( [ "extend" ] , functio

    PHP中include/require/include_once/require_once使用心得

    相信大家在使用PHP时经常看到include a.php、include_once a.php、require a.php或者require_once a.php类似这样的写法吧? 我们一起来学习和总结一下这几个语句的作用及特点! include 使用方法: include "test...

    php 中include()与require()的对比

    仅有的一些不同在于: include()执行时文件每次都要进行读取和评估; require()执行时文件只处理一次(实际上,文件内容替换了require()语句)。 即如果有包含这些指令之一的代码和可能执行多次的代码,则使用...

Global site tag (gtag.js) - Google Analytics