- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学习ruby干货.pdf
我在 《【解惑】计算机学习速成法》、《听杨中科吹牛B— 《杨中科:我的大学生活》》、《程序
化的思维与一通百通,一切语言都是纸老虎》、《这么多技术我该怎么学》、《【解惑】杨中科
说给弟弟的话》等文章中多次提到把一门语言玩儿深入以后再学一门新语言有多容易。但是
很多同学可能没有直观的感受,下面就是我工作中由于用到C#、groovy 、ruby 等语言,临
时学习、现学现卖的一些笔记,学这些语言,我用了多则一周,少则一两天就可以达到使用
这些新语言“干活解决问题”的程度。
我的 ruby 学习笔记(因为之前用过和 ruby 类似的python,所以是对照python 进行对
照式学习的)
1、map 的声明方法:
m={1=3,2=aa}
2、if count10
elsif c3
else
...
end
3、while c3
...
end
4 、正则表示式方法:
/d3/
有match 等方法
判断字符串的匹配:
if line=~/Perl|Python/
...
替换:
line.sub(/Perl/,Ruby)将第一个Perl 替换成Ruby
line.gsub(/Perl/,Ruby)将所有Perl 替换成Ruby
5、block 的使用:
as = [2,66]
as.each{|a|print a}
6、变量的作用域:@成员变量,@@类变量,$全局变量
7、
class Person
def initialize(name,age)
@name = name
@age = age
end
def say()
print 我叫[email=+@name]+@name[/email]
print [email=#@age]#@age[/email]
end
end
p = Person.new(tom,20)
p.say()
print p.inspect#反射显示对象的内容
8、类方法与类变量:
class Person
@@count = 0
def Person.doIt
end
end
9、数组的子数组:
a=[1,2,3,5]
a[1..3]→[2,3,5]
切片
a=[1,2,3,5]
a[0..2]=[4]
a→[4,5]
10、for 语句:
for i in 0..100
print i
end
11、block:
def a
for i in 0..100
yield i
end
end
a{|f|puts f}
带返回值的block:
def a
for i in 1..100
if yield i
puts 接受+i.to_s
end
end
end
a{|v|v90}
应用强大的block:
m={}
(1..100).each{|a| m[a]=a**a}
m.each{|a|puts a}
12、block 与变长参数:
class FileProcess
def FilePcess(*args)
f = File.open(*args)
yield f
f.close()
end
end
FilePcess(c:/boot.ini,r){
|file|
while line=file.gets
puts line
end
}
另一种用法:
FilePcess(c:/boot.ini,r) do |file|
while line=file.gets
puts line
end
end
13、闭包:
class MyClass
def initialize(action)
@action = action
end
def begin()
for i in 1..100
if i90
@action.call(self)
end
end
end
end
a = MyClass.new(){puts 超限}
a.begin()
lambda:
a = lambda{|n| puts n}
文档评论(0)