容器:
数组:
数组的取值在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自己叼出来试一下就行了。 新建类的操作不用我说了吧。。
数组:
数组的取值在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自己叼出来试一下就行了。 新建类的操作不用我说了吧。。