Ruby基础
1、Ruby字符串中存在chop和chomp的内置函数
str.chomp 从字符串末尾移除记录分隔符($/),通常是 \n。如果没有记录分隔符,则不进行任何操作。 str.chomp! 与 chomp 相同,但是 str 会发生变化并返回。 str.chop 移除 str 中的最后一个字符。 str.chop! 与 chop 相同,但是 str 会发生变化并返回。
2、字符串中split分割
irb(main):001:0> str = "/var/log/juju/sgfags.log, /var/log/juju/ssfasgbar.log" irb(main):004:0> str.chomp.split(/,\s*/) => ["/var/log/juju/sgfags.log", "/var/log/juju/ssfasgbar.log"]
3、array.uniq 返回一个新的数组,移除了 array 中的重复值
array.uniq! 从 self 中移除重复元素。如果没有变化(也就是说,未找到重复),则返回 nil。
4、ruby模块
$LOAD_PATH << '.' #让Ruby知道必须在当前目录中搜索被引用的文件 require_relative #在不想使用$LOAD_PATH的情况下,可以从一个相对目录引用文件 include modulename #在类中嵌入模块 require “文件名” #在include模块之前,需要先使用require语句引用该文件 当一个类继承了两个以上的模块,我们可以说sample使用了多重继承或mixin
5、ruby字符串
'这是一个 Ruby 程序的字符串' #单引号字符串 #双引号字符串 #!/usr/bin/ruby # -*- coding: UTF-8 -*- name1 = "Joe" name2 = "Mary" puts "你好 #{name1}, #{name2} 在哪?" #%q 和 %Q 来引导的字符串变量
#%q是单引号引用规则,%Q是双引号引用规则,后面再接一个 (! [ { 等等的开始界定符和与 } ] ) 等等的末尾界定符
#跟在 q 或 Q 后面的字符是分界符.分界符可以是任意一个非字母数字的单字节字符.如:[,{,(,<,!等,字符串会一直读取到发现相匹配的结束符为止
#!/usr/bin/ruby # -*- coding: UTF-8 -*- desc1 = %Q{Ruby 的字符串可以使用 '' 和 ""。} desc2 = %q|Ruby 的字符串可以使用 '' 和 ""。| puts desc1 puts desc2
#字符编码
#程序开头使用 $KCODE 改变字符集
6、Ruby 比较符号 ==, === ,eql? , equal/
== #判断对象值是否相等 === #主要用于case语句的相容判断 (1..10) === 5 #=> true: 5属于range 1..10 /\d+/ === '123' #=> true: 字符串匹配这个模式 String === 's' #=> true: "s" 是一个字符串类的实例 :s === 's' #=> false eql?对象hash值判断,Object里面 “eql?”和“==”等价,通常可以把“eql?”看作比“==”更严格的相等 1 == 1.0 #=> true 1.eql? 1.0 #=> false str1 = 'a' str2 = 'a' puts str1 == str2 #=> true str1.hash #=> 104582539 str2.hash #=> 104582539 puts str1.eql? str2 #=> hash值相等 true str1.object_id #=> 20804940 str2.object_id #=> 20804920 puts str1.equal? str2 #=> object_id不相等 false