我对Ruby比较陌生,时间有限,因此我尝试了简单的事情。 最近我需要创建一个文件,因为我很懒,我跑到谷歌。结果:
File.open(local_filename, 'w') {|f| f.write(doc) }
对我感到羞耻,这很简单,应该自己做。然后我想检查File类的方法提供什么ruby魔法,或者在调用这些方法时是否有任何'简化',所以我前往文档here,并检查了File类。
我和Net :: HTTP进行了几乎相同的巡演。
当我认为好的旧Turbo Pascal的7.0文档比Ruby文档更好地组织时,我是否夸大了?是否还有其他来源不知情的人会收集知识?还是有可能我只是陷入了一个文档漏洞,其余的都是超级精彩的五星级组织?
由于
答案 0 :(得分:5)
您必须记住,Ruby是一种面向对象的语言,标准库中的许多对象都是基于其他对象构建的。此外,许多模块扩展了许多功能。
因此,在文档中,您需要查看构建Object的内容。在File的情况下,它建立在IO之上,它将具有您期望在标准“文件”类中找到的许多功能。
我同意Ruby的一些文档是脱节的。我认为获得一本好书很重要;我推荐我们称之为“The Pickaxe Book”,AKA“Programming Ruby”。还有许多其他好书,以及一些在线的好文档,但这是一本很棒的书。 [第一版]可在线免费获取;它有点过时但仍然有用。
我建议您在SO上浏览some of the other questions similar to this以获取更多建议。
我还保持对Ruby 1.9的Core和Keyword文档的链接。而且,最后,Ruby-Docs site的顶部指向了很多好的信息,但你必须注意文档的版本。
最后,不要忽略内置帮助:命令行中的ri
是您自己计算机上的快速信息源,应该包含核心和标准库的文档,以及所有宝石你安装好了。 ri open
会告诉你所有“开放”的地方都被定义了。 ri File.open
会给你很多关于该命令的信息。
当我开始使用Ruby时,学习该语言的最大障碍是文档。我仍然发现获取有关Perl和Python的信息要容易得多,并且觉得Ruby应该使用这些作为示例。但这并没有改变我使用Ruby的乐趣。这是一种很棒的语言,一旦越过最初的驼峰,我越来越喜欢它。
@phoffer在上面的评论中推荐RubyDoc.info。我没有看到那个网站,但它看起来不错。我喜欢它,它显示了一个类清楚地继承了什么。
答案 1 :(得分:0)
您是对的,1.9之前的文档中有关于File#open
的错误。
open
下记录了Kernel
,是的,实际上你可以说File.open
正如你所指出的那样,它只是在File
或在IO
。
我的建议只是use 1.9 docs ...
答案 2 :(得分:0)
我当前的版本是ruby 2.0.0和ri 4.0.1(ri -v)。我遇到了同样的问题,我输入ri File.open => “没有人知道File.open”
在鞭打互联网后,我发现了这段代码Source
gem rdoc --all --ri --no-rdoc
该页面也很好地解释了为什么你应该使用ri而不是谷歌。
编辑:代码修复了“没有任何关于File.open”的产量。安装需要一些时间才能打开新选项卡。