Ruby——关于require与require_relative

require跟require_relative都是Kernel的方法。

但是两者用起来还是有区别的。

requrie filename

1)如果filename是一个相对路径,则会在$LAOD_PATH($:)中去寻找

$LOAD_PATH.unshift(File.dirname(__FILE__)) unless $LOAD_PATH.include?(File.dirname(__FILE__))

#其中File.dirname(__FILE__)代表当前路径,而$LOAD_PATH.unshift方法的目的就是将当前目录作用ruby标准的加载路径。

2)如果filename是一个绝对路径,则寻找绝对路径

require_relative filename

1)直接取相对路径。此时与$LOAD_PATH($:)无关,是文件本身路径的相对地址。

时间: 2024-10-16 13:08:00

Ruby——关于require与require_relative的相关文章

Ruby的require相关知识

1. 在调用require xxx之前,需要确定xxx这个gem已经安装过了(使用gem install xxx,安装位置可以使用gem env列出),或者xxx是Ruby内置的标准函数库(StdLib),总之在本地有xxx的代码或lib. 2. 调用require xxx后发生了什么?xxx不是绝对路径. (1)如果在 $LOAD_PATH 数组中能找到xxx,就调用kernel的原有require方法来载入xxx,并在 $LOADED_FEATURES中加入xxx (2)如果在 $LOAD_

ruby关于require路径

require './aaaa' 这种方式,在ruby里面,略微蛋疼,测试+google以后,发现还是全路径比较靠谱,这个略显蛋疼 大概这样 require File.dirname(__FILE__) + "/" + "./src/xxxx" xxxx为rb脚本,好吧,土了点,但是可用. 一个傻瓜式gem https://github.com/jarmo/require_all #这个支持通配符 require_all 'lib/**/*.rb' #这个支持相对路

win7 +ruby环境 require “mysql”出错解决方法

错误信息 ERROR: Error installing mysql-2.9.0.gem: ERROR: Failed to build gem native extension. 解决方案主要参考<2. 安装失败问题处理 >: step1.      下载 mysql-connector-c-noinstall-6.0.2-win32,并解压至目录 step2. 执行geminstall时添加--with-mysql-lib. --with-mysql-include参数. gem inst

Ruby初探

官方网站:https://www.ruby-lang.org/zh_cn/ 标准库API文档:http://ruby-doc.org/stdlib-2.3.0/ 简介特性安装Ruby 命令行选项编码语法空白与行尾标识符与保留字Here DocumentBEGIN与END 语句注释运算符算数运算符比较运算符赋值运算符并行赋值位运算符范围运算符defined? 运算符点运算符 "." 和双冒号运算符 "::"运算符的优先级数据类型数值(Number)字符串(String

Ruby for Sketchup 贪吃蛇演示源码(naive_snake)

sketchup是非常简单易用的三维建模软件,可以利用ruby 做二次开发, api文档 http://www.rbc321.cn/api 今天在su中做了一款小游戏 贪吃蛇,说一下步骤 展示 主要思路: 我制作的的玩法是这样的 关于入口文件 # ----------------------------- # # email:[email protected] # # uri: http://www.rbc321.cn # # ------------------------------# #

ruby和Python简单对比

前不久学了ruby,发现ruby和Python非常像,于是自个测试对比了下,测完了才知道网上有现成的……下面是测试结果 序列(包括列表和元组等)有分片的特点:可能会比较方便的提取其中特定元素,暂时感觉没什么用:注意是用:分开两个数字.负号表示倒数第几个 留空表示开头或者结尾,python中的分片可以等距分割,格式是两个冒号 ruby则是[4...7]这样用两个或者三个句号分片,也可以用[1,2]这种逗号 不同的是,ruby似乎不能等距分割,而且ruby逗号方式下两个参数的意义是第一个是起始元素序

编写ruby扩展库

# Loads mkmf which is used to make makefiles for Ruby extensions require 'mkmf' # Give it a name extension_name = 'fsnet' dirs = ["/usr/local/lib"] $libs += "-levent " $libs += "-levent_extra " $libs += "-levent_pthreads

ruby+gem常用命令

gem是一种文件组织的包,一般的ruby的很多插件都有由这种各种的包提供.我们来看看gem的用法 ruby -v #查看ruby 版本 ruby -e ''require"watir"; puts Watir::IE::VERSION'' #查看watir版本 rvm list known #列出已知的ruby版本 rvm install 1.9.3 rvm use 1.9.3 | rvm use system rvm use 1.9.3 --default rvm list #列出本

Mac OS X下让ruby支持tcl/tk

我记得在老早在OS X10.8下使用ruby1.9.x的时候只要到下载安装ActiveTcl8.5,没怎么配置就运行tk好好的.但是近日想重新执行下tk代码,发现在require 'tk'的时候就报错鸟!现在用的是ruby2.1.3版本.上网搜了一下,1.9.x之后的版本默认不再将tcl/tk支持编译到ruby里面,so如果你想用则必须重新编译ruby!我勒个去!就不能做成个gem吗?但在多种外围尝试无果的的情况下只有一条路,就是重新编译ruby了... 到ruby官网下载最新的ruby2.1.