容器:
数组:
数组的取值在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自己叼出来试一下就行了。 新建类的操作不用我说了吧。。
分享到:
相关推荐
the ruby way the ruby way
The Ruby Way(第2版) <br>The Ruby Way assumes that the reader is already familiar with the subject matter. Using many code samples it focuses on "how-to use Ruby" for specific applications, either ...
The Ruby Way 第三版(英文版),全书22章,书中包含600多个按主题分类的示例。每个示例都回答了“如何使用Ruby来完成”的问题。 ——Ruby on Rails之父David Heinemeier Hansson倾力推荐!
内含以下4个文档: 1、Addison.Wesley.The.Ruby.Way.2nd.Edition.Oct.2006.chm 2、O'Reilly.Learning.Ruby.May.2007.chm 3、Programming Ruby 2e.pdf 4、ruby中文文档.chm
《The Ruby Way 第二版》中文版采用“如何解决问题”的方式阐述Ruby编程,书中包含400多个按主题分类的示例。每个示例都回答了“如何使用Ruby来完成”的问题。首先对要完成的任务进行了描述,并讨论了技术方面的约束...
Are you frustrated with demanding languages that seem to get in your way, instead of getting the work done? If so, then we've got a language and book for you! Ruby is a fully object-oriented ...
express algorithms in a very natural way, and then it’s just a matter of typing ruby at the command line and pressing enter, and your Ruby script is running. However, Ruby’s syntax is deceptively ...
《The Ruby Way 2nd Edition》是一本深入探讨Ruby编程语言的经典著作,旨在帮助读者全面理解和掌握Ruby的精髓。这本书的第二版在2006年出版,由Addison-Wesley出版,作者通过深入浅出的方式,揭示了Ruby语言的强大...
With its simple commands, flags, and parameters, a well-formed command-line application is the quickest way to automate a backup, a build, or a deployment and simplify your life. With this book, you...
《Ruby Way》一书还会详细介绍Ruby的Gem包管理器,Gem是Ruby生态系统的核心部分,提供了大量的库和工具,让开发者能够轻松地安装和使用第三方软件包。此外,书中可能涵盖了Ruby on Rails框架,它是基于Ruby构建Web...
《The Ruby Way》第二版是Addison-Wesley出版社在2006年10月出版的一本关于Ruby编程语言的权威指南。这本书深入浅出地介绍了Ruby语言的核心特性和高级用法,旨在帮助读者全面理解和掌握Ruby的精髓。通过阅读这本书,...
6. **标准库和Gem**:Ruby的丰富标准库和第三方Gem(类似其他语言的库或插件)生态系统,提供了大量现成的功能,加速开发过程。 7. **Ruby on Rails框架**:虽然书名未直接提及Rails,作为Ruby最知名的Web开发框架...
考阿路由器找到我的路 用于路由器... 旧版本: koa-router-find-my-way @ 3 => find-my-way @ 2 koa-router-find-my-way @ 2 => find-my-way @ 1基本用法const koaRouter = require ( 'koa-router-find-my-way' ) ;cons
You'll make sure slow code doesn't creep back into your Ruby application by writing performance tests, and you'll learn the right way to benchmark Ruby. And finally, you'll dive into the Ruby ...
You’ll make sure slow code doesn’t creep back into your Ruby application by writing performance tests, and you’ll learn the right way to benchmark Ruby. And finally, you’ll dive into the Ruby ...