my way in ruby第3课

容器:

数组:

数组的取值在ruby真他妈的松散 简直就乱来 不过倒是挺方便的。

分段取值:a[index,count] 从index位开始 取count位。
还有第二种写法
a[index..count] 效果一样
a[index...count] 不同 是不取最后一位。。


真他妈的乱来。。


哈希表:ruby的哈希表没有泛型的限制 要装什么就放什么 又是没有规则的鬼东西。。没限制是最大的限制。


好 今天是ruby 之旅的第三天 继续革命

Block:

感觉ruby的block是用来迭代的时候非常方便,尤其是在遍历查找的时候更是tmd流畅。

demo:
class Woman
attr_reader:name
attr_reader:age
def initialize(name,age)
@name = name
@age = age
end
def getName
return @name
end
end

require 'Woman'
class Women
def initialize
@womanList = Array.new
end
def [](key)
if key.kind_of?(Integer)
result = @womanList[key]
else
@womanList.find {|woman|
if woman.name == key
result = woman
end
}
end
return result
end

def append(woman)
@womanList.push(woman)
self
end
end
allWomen = Women.new
allWomen.append(Woman.new('brandy',22))
allWomen.append(Woman.new('zhiling',24))
puts allWomen['brandy'].name


好 下面看看怎么实现迭代器。

Iterator:
郁闷 看到yield的时候就晕了。。。

什么鬼东西,感觉是自调用的东西

class YieldTest
#defien a block
def add(max)
i1 = 1
i2 = 1

while i1 < max
yield i1

i1=i2
i2 = i1+i2
end
end

end

test = YieldTest.new
test.add(100) {|total| puts total}

这里感觉yield是在调用block的内容 并且带i1为参数去实行block了 block指{中的操作}。嗯
和论坛上那群鸟人说的continue的作用差不多 只是带个参数而已。

暂时理解成yield出现时就调用{}里面的操作就行了 不要想太多 深入的东西看多了打击士气啊。。
以后慢慢理解 再跟那群鸟人叼过。。

看ruby里面的实现机理真是收获不浅 老衲受惊了。。

ruby主要有三个迭代器 ,each find 还有 collect

试用一个each来遍历文件的读取吧:

def openFile
f = File.open("testFile.txt")
f.each {|line|
puts line
}
end
那个testFile自己叼出来试一下就行了。 新建类的操作不用我说了吧。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值