在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
ruby没有像java那种严格的包管理机制,因此引用起来就有些让人摸不着头脑,所以有人说ruby不适合用于多人协作的大项目,这是有一定道理的。
************************************************************************************************************************************************************************************************* require一般用来加载其它的类,如: require 'dbi' require "rexml/document" 但是上面加载的是标准类库里面的文件,当然也可以是已安装的gems文件, #E7.4-1.rb Module(模块) module Module1 def sqrt(num, rx=1, e=1e-10) num*=1.0 (num - rx*rx).abs <e ? rx : sqrt(num, (num/rx + rx)/2, e) end end
#E7.4-2.rb Person 类 class Person def talk puts "I'm talking." end end
#用require_relative加载本地Ruby文件 require_relative "E7.4-1" require_relative "E7.4-2" class Student < Person include Module1 end aStudent=Student.new aStudent.talk # I'm talking. puts aStudent.sqrt(77,2) # 8.77496438739435 #但是这个如果想直接通过require的方式来引用也是有办法的,那就是在文件头部将当前目录作为ruby加载的路径: $LOAD_PATH.unshift(File.dirname(__FILE__)) unless $LOAD_PATH.include?(File.dirname(__FILE__)) require "E7.4-1" require "E7.4-2" class Student < Person include Module1 end aStudent=Student.new aStudent.talk # I'm talking. puts aStudent.sqrt(77,2) # 8.77496438739435
$LOAD_PATH.unshift(File.dirname(__FILE__)) unless $LOAD_PATH.include?(File.dirname(__FILE__)) #这个改成 $: << '.' 就行。 $: << '.'
File.expand_path(File.join(File.dirname(__FILE__),’..’,’..’,'page’,'client_arithmetic’))
1、$LOAD_PATH 指的是Ruby读取外部文件的一个环境变量,其实和windows的环境变量是一个概念。Ruby会在这个环境变量的路径中读取需要require的文 件,如果在环境变量中找不到自己想要的文件,就会报LoadError错误。还有$LOAD_PATH和$:指的都是同一个环境变量,是一样一样的。
2、__FILE__指的是当前rb文件所在目录的相对位置。
3、File.join是把自己的参数组成一个目录形式的方法,如上面就组成“xxx/http://www.cnblogs.com/page/client_arithmetic”(xxx代码rb文件的相对位置)
4、 File.expand_path就是把其参数从相对路径转化为绝对路径的方法。
5、$LOAD_PATH.unshift 就是把上面得出的绝对路径加到现在已经存在所有环境变量之前。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论