《ruby编程教程》学习笔记
视频教程 AL VTC
2.19
- instance variable 实例变量,前面加一个@,在类的一个对象中存在
- class variable 类变量,前面加@@,在类中一直存在
- local variable 临时变量,前面不加@,在一个函数类存在
- 在""中替代变量值
puts "a=#{a}"
- 循环:while loop;for….in; .time ; .upto ; .step;
- 迭代遍历: .each ; .each_byte ; for …. in
- module: module … end;
- block: yield占位; 5.times{ |var| puts var }
- exception: begin … rescue … end;
- ruby tool: ri 帮助;irb 模拟; ruby 运行; gem 文件组织包
- everything in ruby is object
2.20
- string
- 单引号是单纯字符串,双引号字符串可替换内容
a = "world" b="Hello #{a}" =>"Hello world"
%q/This is a string/ # %q/ … /相当于单引号 %Q/This is a string/ # %Q/ .. /相当于双引号
- a<=>b 如果a>b返回1 , 如果a=b,返回0,如果 a<b返回-1.
- str = <<END_OF_STRING … END_OF_STRING,合并中间字符串
- str.method:downcase小写,capitalize首字母大写,lstrip去除左边空格,rstrip去除右边空格,insert插入,split分割,slice截取一部分,index查询位置,include是否包含,sub替换子串,gsub,替换所有子串,to_i转化为整型,to_f转化为浮点。
- Input output
- puts输出字符串,自动换行,可写入文件;print输出,不换行,putc输出字符
- gets获取舒服,自动加'\n',gets.chomp去掉'\n'
- 打开文件1.
filename = "test.txt" #if File.file? filename File.open(filename) do |file| while line = file.gets puts line end end
- File.readable?filename 可读
- File.file?filename 存在
- File.executable?filename 可执行
- 2.
IO.foreach(filename){|line| puts line}
- 3.
str = IO.read(filename)
- 4.
arr = IO.readline(filename)
- 写入:file.puts str
- 目录 Dir pwd当前目录 entries() 进入
- 写入CSV文件
require "csv" csv.open("data.csv",'w‘) do |data| data << ['name','ext','room'] data << ['Al','123','1'] data << ['Ed','122','2'] data << ['Ann','121','3'] end
- 读取CSV文件
require 'csv' print "Enter a csv file to print:" filename = gets.chomp #去除gets中的'\n' csv.open(filename,'r') do |data| puts data #puts简写为p时会有格式[] end
- require,load,include区别
- require,load用于包含文件,include用于包含模块
- require加载一次,load可加载多次,require加载不加后缀,load需加后缀
- require一般用于加载库文件,load一般加载配置文件
- regular expression
- str.sub(/\b0,/)
- Regexp.compile("[a-e]") =>/[a-e]/
- 数字
- 0b010为二进制00.0b开头
- 64**2 = 4096 <=> 64^2
- 输出浮点: printf("x=%6.2f\n",x)