无标题文章

=========系统=========

1/ruby irb 命令的区别及使用.

irb: 退出终止  exit 或 ctrl + d

7/首行 #encode: 编码方式

默认 UTF-8

Windows: GBK 或 GB2312

UNIX 或 Max OS X 默认

命令方式: 略(P13)

10/注释

#

=begin

=end

2/ARGV ARGV[0]

3/约定俗成: 程序跨行写的时候用 do ~ end, 在一行写的时候用 { ~ }

=========字符串=========

2/符号Symbol

:name

3/符号与字符串转换

.to_s

.to_sym

3/字符串:

转义字符

"" 或 ‘’

3/字符串转整数

.to_i

13/==(字符串比较) != <= >=

// 打印

2/print method

返回值 nil

用, 分隔多个参数

5/puts

每个字符串后都加换行符

6/p

保持数据类型

保持转义字符原样,不转义

9/pp方法

P 库

适当换行,排版

=========数值=========

8/数值:

Fixnum 和 Float

四则运算

数学函数库 Math.

=========容器=========

1/容器:

数组:

[]

[,,,]

.size

动态数组,自动调整大小.

任何对象都可以保存到数组

遍历:

数组.each do |变量|

end

散列hash:

key类型:字符串/符号

.name =>

name:

hash.each do |key, value|

end

6/获取数组的元素

a, b = arr

a, = arr  只获取部分元素, 末尾有逗号

嵌套数组:

a, (b, c) = [a, [b, c]]

=========表达式=========

9/变量

#{value}

4/正则表达式

/模式/i =~ 字符串

匹配成功:返回匹配部分的位置

匹配失败:返回 nil

i:表示不区分大小写

5/nil

一个特殊值,表示对象不存在.

6/false, nil

2/变量

局部:字母 _

全局:$

实例:@

类:@@

伪:nil/ self/ true/ false/

预定义:

变量名:决定变量的种类;

多个单词时用 _ 分隔(变量名/方法名)

或 驼峰法(类名/模块名)

3/常量

大写英文字母开头

预定义常量: 全部大写(权 定义)

4/保留字

略(P37)

5/多重赋值:

a, b, c = 1, 3, 5

[a, b, c]

没有对应上的, 忽略 或 nil

* 构成数组

例: 交换值,

a, b = b, a

2/逻辑运算符:

&& || !

优先级略低: and or not

7/对象的同一性, 对象的 ID

object_id  __id__

equal? 对象的 id 是否相同

== 值相等 1.0 == 1 true (权: 比较字符串时, 相等; 比较数值型时, 相等)

eql? 1.0.eql?(1) false (权: 比较字符串时, 相等; 比较数值型时, 不相等)

hash: 中的 key 是ID 值 来索引的

=========方法=========

4/方法调用无参可以省略()

5/方法的定义

def name

end

name()

=========类=========

6/引用

require 库名

4/File

.open .read .close .each_line

8/Date

.today .now

1/类:

Numeric/ String/ Array/ Hash/ Regexp/ File/ Symbol/ Data/ Time

=========流程=========

11/流程控制

顺序

条件

if

unless

case

12/if true | false then

else

end

循环

14/while  do

end

15/number.times  do

end

异常

#条件判断#

1/if

.empty?(约定俗成的规则返回布尔值的都加?)

3/unless

4/case

when ~ then

else

end

when 一次可以指定多个值

when 后面可以类名 或 正则表达式

5/exit 退出, 相当于 break

6/case 中的 when 与 === 与 =~

#循环# 6种

1/ times/ while/ each/ for/ until/ loop

times:

数字.times do |i|

end

数字.times {

}

for:

for in from..to 或 arr do

end

for 语句是用 each 来实现的, each的语法糖

while:

while do

end

until:

与 while 相反

each:

对象.each do

end

对象.each do |变量|

end

对象.each { |变量|

}

loop:

break 来跳出循环, 可以ctrl + C 来终止程序

2/ break, next, redo

=========示例=========

1/ruby 实现 Unix 里 grep 命令

7/grep

=begin

class BYT

def byt_grep(patten, filename)

file = File.open(filename)

file.each_line do |line|

if patten =~ line

puts line

end

end

file.close

end

end

=end

你可能感兴趣的:(无标题文章)