Ruby study1


1,双引号和单引号

 

    当字符串使用双引号的时候,可以编写二进制码到字符串中。

 

puts "This string\ncontains a newline"
# This string
# contains a newline

 

    单引号输出如下

 

puts 'This string\ncontains a newline'

#This string\ncontains a newline

 

 

    当使用单引号时,仅有的特殊代码是,你可以使用 "\'" 生成一个单引号,"\\"生成一个 "\"

 

puts 'it may look like this string contains a newline\nbut it doesn\'t'
# it may look like this string contains a newline\nbut it doesn't

puts 'Here is a backslash: \\'
# Here is a backslash: \

 

 

2, 方法后面的符号—— ! 和 ?

 

string.upcase
string
# => "MY FIRST STRING"
# => "My first string"

string.upcase!
string
# => "MY FIRST STRING"
# => "MY FIRST STRING"

 

    "危险"的方法,会修改对象本身的方法,通常后面会有一个感叹号: upcase! 方法修改了string本身,而upcase没有。

    另一种惯例句法是,谓词后面有一个问号,

 

string.empty?                                 # => false
string.include? 'MY'                         # => true
 

3,遍历hash 

hash = { "key1" => "val1", "key2" => "val2" }
string = ""
hash.each { |k,v| string << "#{k} is #{v}\n" }
puts string
# key1 is val1
# key2 is val2

   更有效率的做法是:

 

string = ""
hash.each { |k,v| string << k << " is " << v << "\n" }
   

    在Ruby中,string就像array一样,可以根据需要扩展而无需消耗太多的内存和时间。

    a,经可能的使用诸如  string << k << " is " << v << "\n"的方式去构造字符串,这样效率更高些;

 

    b,你不应该改变一个不属于你声明的字符串;

    c,Array#join必须加一个分隔符作为参数,来隔离数组中相邻元素,join方法不会在末尾也加一个分隔符

    区别:

 data = ['1', '2', '3']
s = ''
data.each { |x| s << x << ' and a '}
s
data.join(' and a ')
# => "1 and a 2 and a 3 and a "
# => "1 and a 2 and a 3"
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值