ruby编程记录

ruby编程记录

1)ruby 安装及 ruby交互式(http://developer.51cto.com/art/200703/41243.htm)
安装ruby及ruby devkit
交互式:

如果你使用Mac OS X,那么请打开终端窗口输入irb;
如果你使用Linux,那么请打开shell输入irb;
如果你使用windows,那么请在开始菜单中找到Ruby->fxri,并执行它

2)字符串操作

str.length => integer   长度
str.include? other_str => true or false   包含子串
str.insert(index, other_str) => str   插入子串
str.split(pattern=$;, [limit]) => anArray  分割字符串
str.gsub(pattern, replacement) => new_str 替换子串
str.delete([other_str]+) => new_str   删除子串
str.lstrip => new_str     去掉前后空格
str.match(pattern) => matchdata or nil 匹配
str.reverse => new_str  反转
str.to_i=> str 转化为数字
chomp:去掉字符串末尾的\n或\r
chop:去掉字符串末尾的最后一个字符,不管是\n\r还是普通字符

3)读写CSV文件

require 'csv'
#写(第一种)
CSV.open(“path/to/file.csv”, “wb”) do |csv| 
csv << [“row”, “of”, “CSV”, “data”] 
csv << [“another”, “row”] 
# … 
end
写(第二种)
csv_string = CSV.generate do |csv| 
csv << [“row”, “of”, “CSV”, “data”] 
csv << [“another”, “row”] 
# … 
end
读(第一种)
CSV.foreach(“path/to/file.csv”) do |row| 
# use row here… 
end
读(第二种)
arr_of_arrs = CSV.read(“path/to/file.csv”)
读(第三种)
people=CSV.parse(File.read('data.txt'))  
puts people  

4)格式化输出

一、如果输出语句有引号可以加 \ 将其输出
puts 'I\'ll say "No!"'
二、含参数输出
user_name = 'Fei'
puts "Let's talk about %s." %user_name
puts "#{user_name} has #{my_eyes} eyes."
三、格式化输出
formatter = "%s %s %s %s"
四、自定义格式化输出
my_define = <"%X"%16
puts "%d"%16
六、小数位数控制
puts ".2f"% 11.329  #最少5位数(包括小数点)且保留小数点后2位数字
puts 11.329.round(1) #留小数点后X位

5)当前文件和文件目录路径

puts Pathname.new(__FILE__).realpath  
puts Pathname.new(File.dirname(__FILE__)).realpath

6)变量种类和作用域

一、全局变量以 $ 开头
$global_variable = 10
二、实例变量以 @ 开头
class Customer
   def initialize(id, name, addr)
      @cust_id=id
   end
end
三、类变量以 @@ 开头
class Customer
   @@no_of_customers=0
end
四、局部变量以小写或下划线 _ 。作用域为 classmoduledef 
五、常量以大写字母开头。常量不能定义在方法内。
class Example
   VAR1 = 100
   def show
       puts "第一个常量的值为 #{VAR1}"
   end
end
六、伪变量
self: 当前方法的接收器对象。
true: 代表 true 的值。
false: 代表 false 的值。
nil: 代表 undefined 的值。
__FILE__: 当前源文件的名称。
__LINE__: 当前行在源文件中的编号。

七、数组切片

ar=[1,2,3,4]
ar[0]
ar[-1]
ar[0..-2]

八、数组与字符串相互转换

str = ary.join(":")   
str.split(":")

九、从.env读入环境变量

open('.env', 'r').readlines.each {|l| kv = l.split('='); ENV[kv[0]] = kv[1];}

十、bundle 安装

gem install bundler

Gemfile

source 'https://rubygems.org'
gem 'nokogiri'
gem 'rack', '~> 2.0.1'
gem 'rspec'

安装

$ bundle install
$ git add Gemfile Gemfile.lock

你可能感兴趣的:(#,ruby,ruby)