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

 

 

posted @ 2019-11-12 16:03  换头怪  阅读(154)  评论(0编辑  收藏  举报