`
Nanigac
  • 浏览: 14022 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Require vs Load

阅读更多

原文地址 : http://www.fromjavatoruby.com/2008/10/require-vs-load.html

关于两者的区别,原文讲的很清楚,这里只做简单翻译和实验,记录一下省得忘记

 

Require官方文档Kernel#require ,Load官方文档Kernel#load


区别有2点:

1.Load需要显示指出扩展名(LoadError)而require不用,require会自动加上.rb,.so,.o,.dll完成加载。
2.Load可以重复加载多次而require不行(第二次加载返回false)。

 

实验 :test.rb和 run.rb在同一目录。

test.rb

puts "This file is so useful I just want to use it everywhere!"

 run.rb

def reqFile(file)
  require file
end

def loadFile(file)
  load file
end

puts "\n"
puts 'reqFile Method1 ...'
puts reqFile('test')
puts 'reqFile Method1 ...'

puts "\n"
puts 'reqFile Method2 ...'
puts reqFile('test')
puts 'reqFile Method2 ...'

puts "\n"
puts 'loadFile Method1 ...'
puts loadFile('test.rb')
puts 'loadFile Method1 ...'

puts "\n"
puts 'loadFile Method2 ...'
puts loadFile('test.rb')
puts 'loadFile Method2 ...'

puts "\n"
puts 'loadFile Method3 ...'
puts loadFile('test')
puts 'loadFile Method3 ...'

 输出:

>ruby run.rb
run.rb:6:in `load': no such file to load -- test (LoadError)
	from run.rb:6:in `loadFile'
	from run.rb:31

reqFile Method1 ...
This file is so useful I just want to use it everywhere!
true
reqFile Method1 ...

reqFile Method2 ...
false
reqFile Method2 ...

loadFile Method1 ...
This file is so useful I just want to use it everywhere!
true
loadFile Method1 ...

loadFile Method2 ...
This file is so useful I just want to use it everywhere!
true
loadFile Method2 ...

loadFile Method3 ...
>Exit code: 1
 

 

分享到:
评论

相关推荐

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

    ### 动态加载的艺术:深入理解 Ruby 中 `require` 与 `load` 的区别 #### 引言 在 Ruby 编程中,模块化和代码重用是非常重要的实践。为了实现这一目标,Ruby 提供了两种不同的方法来加载外部文件和库:`require` ...

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

    require,load用于文件,如.rb等等结尾的文件。include,load则用于包含一个文件中的模块。 require 一般情况下用于加载库文件,而load则用于加载配置文件。 1、require:加载一个库,并且只加载一次,如果多次加载会...

    node-loadbalance:蒸馏负载平衡引擎的集合

    安装使用可以: npm i loadbalance const loadbalance = require ( 'loadbalance' )用法要使用,实例化引擎或使用池调用工厂方法。 然后调用pick(),它将返回选定的对象,重复调用pick()会从池中产生相同或不同...

    `require': no such file to load -- sqlite3/sqlite3_native

    标题中的错误信息"`require': no such file to load -- sqlite3/sqlite3_native"是一个常见的Ruby编程语言中的加载错误,通常发生在尝试使用SQLite3数据库驱动时。这个错误表明系统无法找到指定的sqlite3_native库,...

    Lua中的loadfile、dofile、loadstring、require用法实例

    在Lua中,loadfile、dofile、loadstring和require是与文件和模块加载相关的四个重要函数。本文将通过实例介绍它们的用法,并详细解释其背后的机制和区别。 首先,loadfile函数用于动态地加载一个外部的Lua文件。它...

    Ruby,详细描述require背后的故事

    `require`背后的机制涉及到了Ruby的加载路径(`$LOAD_PATH`),这是一个Ruby用来搜索文件或库的目录列表。 #### `require`与`require_relative` 在Ruby中,除了`require`之外,还有一个`require_relative`关键字。这...

    前端项目-vue-lazyload.zip

    Vue-lazyload 就是一个专为 Vue.js 应用程序设计的插件,它允许我们按需加载图片,从而提高应用性能。 Vue-lazyload 插件主要解决了以下问题: 1. **减少网络资源请求**:传统方式下,所有图片都会在页面加载时...

    Node.js-load-json-file-读取和解析JSON文件

    const loadJsonFile = require('load-json-file'); loadJsonFile('./path/to/your/file.json') .then(data => { console.log(data); // 输出解析后的JavaScript对象 }) .catch(err => { console.error('Error ...

    前端开源库-babel-load-config

    const { loadConfig } = require('babel-load-config'); module.exports = { // 其他Webpack配置... module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader', ...

    【跳坑日记】Ubuntu 16.04安装 Ruby2.7.0遇到的坑:cannot load such file — openssl (LoadError)

    在本文中,我们将探讨在Ubuntu 16.04系统上安装Ruby 2.7.0时遇到的一个常见问题:`cannot load such file — openssl (LoadError)`。这是一个与Ruby和OpenSSL库集成有关的问题,通常发生在试图安装或运行依赖于...

    simple-load-script:非常简单的基于Promise的脚本加载器和JSONP

    简单加载脚本非常简单的基于Promise的脚本加载器和JSONP 基于承诺( ) 使用addEventListener(IE9 +)安装npm install --save simple-load-script进口// es5 CommonJSconst loadScript = require ( 'simple-load-...

    load-script-once:如果尚未加载Javascript文件,请异步加载

    var load = require ( 'load-script-once' ) ; load ( '//www.google-analytics.com/ga.js' ) ; 加载到Google Analytics(分析)库中(假设它不在页面上) var load = require ( 'load-script-once' ) ; load ( ...

    举例讲解Ruby中require的使用方法

    - 当使用`require`时,Ruby解释器会根据`$LOAD_PATH`环境变量中的路径来查找指定的文件。 - `$LOAD_PATH`是一个数组,包含了Ruby解释器搜索库文件的所有路径。 - 如果文件不在`$LOAD_PATH`中,则Ruby会抛出一个...

    load-script2:为现代浏览器动态加载脚本

    const loadScript = require ( 'load-script2' ) const script = await loadScript ( 'foo.js' ) console . log ( script . src ) ; // Prints 'foo'.js' 差异 load-script2不支持IE8等旧版浏览器,因为这些浏览器...

    load.js:动态加载外部JavaScript和CSS文件

    const load = require ( 'load' ) ; /* you could use jquery functions here */ await load . js ( 'jquery.js' ) ; /* load menu css and then do some magic */ await load . css ( 'menu.css' ) ; /* ...

    ruby example webrick

    ruby sample: @echo off cd D:\proj\demo ...rem load test data (it depends on the db:environment and db:migrate tasks) call rake db:load_test_data call ruby script/server webrick @echo on

    详解webpack解惑:require的五种用法

    ES6 的 import 语法是 Another way to load modules. 例如: ``` import list from './list'; list.show(); ``` 在上面的代码中,我们使用 import 语句加载了 list 模块,然后调用了它的 show 方法。 Webpack 中的 ...

    loadtest:对所选URL进行负载测试。 易于扩展以达到自己的目的

    要访问API,只需将package loadtest添加到package.json devDependencies中: { ... " devDependencies " : { " loadtest " : " * " }, ... } 兼容性 版本5和更高版本至少应与Node.js v10或更高版本一起使用:...

    require-so-slow:`require`s花费太多时间? 个人资料

    命令行用法# Profiles the timeline of requiring `request@latest` and generates a trace# output file you can load in Chrome Timeline viewer [1]$ npx require-so-slow request# You can specify specific ...

Global site tag (gtag.js) - Google Analytics