sách gpt4 ai đã đi

ruby - File.open ('file.txt' ) 与 File.open ('file.txt' ).readlines

In lại 作者:太空宇宙 更新时间:2023-11-03 16:23:07 31 4
mua khóa gpt4 Nike

Tôi sử dụng File.open('file.txt').classFile.open('file.txt').readlines.class 以及前者进行了检查一个返回 Tài liệu,后者返回 Array.

我理解这种差异,但如果我这样做:

    File.open('file.txt').collect {|l| l.upcase} 
=== File.open('file.txt').readlines.collect {|l| l.upcase}

它返回真。那么当对象中的每一项作为参数传递给 block 时,这两个对象之间有什么区别吗?

而且,我假设在两个表达式中传递给 block 的参数都是文件中的一行作为字符串,这使得比较返回 true,是否正确?如果是这样,我如何知道在编写代码时将哪种参数传递给 block ?我是否必须检查文档或源代码之类的东西?

比如,我知道怎么做

['a','b','c'].each_with_index { |num, index| puts "#{index + 1}: #{num}" }  

工作并认为这是理所当然的。但是我怎么知道第一个参数应该是数组中的每一项,而第二个参数应该是索引,而不是相反呢?

希望这是有道理的,谢谢!

1 Câu trả lời

在 irb 中轻松地进行一些 Ruby 自省(introspection)。

irb(main):001:0> puts File.ancestors.inspect
[File, IO, File::Constants, Enumerable, Object, Kernel, BasicObject]

此结果向我们展示了 File 类继承自的类,其中包括类 Enumerable 的方法。那么 File.readlines 返回的是什么对象呢?我认为一个数组,让我们检查一下。

ri File.readlines
IO.readlines(name, sep=$/ [, open_args]) -> array
IO.readlines(name, limit [, open_args]) -> array
IO.readlines(name, sep, limit [, open_args]) -> array

这可能有点矫枉过正,但我们可以验证数组中是否存在可枚举方法。

irb(main):003:0> puts Array.ancestors.inspect
[Array, Enumerable, Object, Kernel, BasicObject]

关于ruby - File.open ('file.txt' ) 与 File.open ('file.txt' ).readlines,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30411044/

31 4 0
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com