Ruby笔记

  • sting interpolation: "#{var_name}"
    • 双引号""转义其中的内容,单引号‘’不转义
  • symbol是种不可变串,全局只创建一份,因此创建和比较等性能更高
    • :"hello"等同于:hello
    • symbol和string互转使用::hello.to_s"hello".intern
  • 函数中的yield(...)会调用函数调用时提供的block,相当于把函数的一部分功能委派给这个未来的block,相当于函数多了一个叫yield的block参数
    • 如果这个block参数是可选的,函数中要用yield(…) if block_given?
  • 将01串表示的二进制转成字节数组: ['1100110011'].pack('B*').unpack('C*')
    参见:string的pack和unpack

nokogiri

  • 取节点属性node['attr-name'],取某子节点内容node.at_xpath('elem-name').text
    • 方法.at_xpath()返回第一个节点,.xpath()返回节点数组

参考