有人能帮我理解关于twitter api和ruby的代码吗?它是一种基于twitter句柄检索所有追随者的方法

有人能帮我理解关于twitter api和ruby的代码吗?它是一种基于twitter句柄检索所有追随者的方法,ruby,csv,twitter,gem,Ruby,Csv,Twitter,Gem,CSV到底做什么?(我知道这是一块宝石) 切片大小是多少?(第13行) 为什么csv在直括号内?(第16行)csv do | csv| 你能解释一下第17、18、19行吗?我完全听不懂 -----------------代码-------------------------------------------------- require 'twitter' require 'csv' def twitter_client @twitter_client

CSV到底做什么?(我知道这是一块宝石)

切片大小是多少?(第13行)

为什么csv在直括号内?(第16行)csv do | csv|

你能解释一下第17、18、19行吗?我完全听不懂

-----------------代码--------------------------------------------------

    require 'twitter'
    require 'csv'
    def twitter_client

       @twitter_client ||= Twitter::REST::Client.new do |config|
            config.consumer_key = ""
            config.consumer_secret = ""
            config.access_token = ""
            config.access_token_secret = ""
       end
   end

   SLICE_SIZE = 100

   def fetch_all_friends(twitter_username)
       CSV do|csv|
           twitter_client.follower_ids(twitter_username).each_slice
           (SLICE_SIZE).with_index do |slice, i| 
                 twitter_client.users(slice).each_with_index do |f, j|
                       csv << [i * SLICE_SIZE + j + 1, f.name,
                       f.screen_name]
                 end
           end
       end
   end
require'twitter'
需要“csv”
def twitter_客户端
@twitter|client |=twitter::REST::client.new do | config|
config.consumer_key=“”
config.consumer_secret=“”
config.access_token=“”
config.access_token_secret=“”
结束
结束
切片大小=100
def fetch_all_friends(twitter_用户名)
CSV do | CSV|
twitter\u client.follower\u id(twitter\u用户名)。每个\u片段
(切片大小)。使用索引do |切片,i |
twitter|u client.users(slice)|

csv过去有一个gem
更快的_csv
,你需要调用它,但现在不需要了。您只需要CSV库

它通常用于读取或创建CSV文件


当没有行号时,回答你的问题有点困难。您可以通过以下网址了解有关Ruby的CSV库的更多信息:

以前有一个gem
faster\u CSV
,您需要调用它,但现在不需要了。您只需要CSV库

它通常用于读取或创建CSV文件


当没有行号时,回答你的问题有点困难。您可以通过以下网址了解有关Ruby的CSV库的更多信息:

以前有一个gem
faster\u CSV
,您需要调用它,但现在不需要了。您只需要CSV库

它通常用于读取或创建CSV文件


当没有行号时,回答你的问题有点困难。您可以通过以下网址了解有关Ruby的CSV库的更多信息:

以前有一个gem
faster\u CSV
,您需要调用它,但现在不需要了。您只需要CSV库

它通常用于读取或创建CSV文件


当没有行号时,回答你的问题有点困难。您可以通过以下网址了解有关Ruby的CSV库的更多信息:

CSV是一个类,实现了对CSV数据的处理

each_slice
是一种
Enumerable
方法,每次迭代只从源集合中获取这么多元素。例如,这样做是为了减少计算的内存需求,或者可能是为了在处理当前块之前延迟获取更多数据。
SLICE\u SIZE
值是要获取的元素数

CSV do | CSV |
初始化
CSV
对象,并将其作为参数传递给块。这是一种组织代码的方法,例如,初始化与块的业务逻辑分离。块由
do
end
关键字分隔

接下来的两行实际上是一条语句:

twitter_client.follower_ids(twitter_username).each_slice(SLICE_SIZE).with_index do |slice, i|
它从twitterapi获取
twitter\u username
的跟随者id集合,从那里获取
SLICE\u SIZE
块中的元素,并将每个块及其索引传递到另一个块中。此块的内容执行的次数与
follower\u id
中的
SLICE\u SIZE
块的执行次数相同

下一行

twitter_client.users(slice).each_with_index do |f, j|
仅适用于当前块的元素。它获取块的每个元素,并将其与块中的索引一起传递给另一个块

到目前为止,它更多的是收集处理,而不是实际的业务逻辑

最内在的陈述

csv << [i * SLICE_SIZE + j + 1, f.name, f.screen_name]

csvcsv是一个类,实现对csv数据的处理

each_slice
是一种
Enumerable
方法,每次迭代只从源集合中获取这么多元素。例如,这样做是为了减少计算的内存需求,或者可能是为了在处理当前块之前延迟获取更多数据。
SLICE\u SIZE
值是要获取的元素数

CSV do | CSV |
初始化
CSV
对象,并将其作为参数传递给块。这是一种组织代码的方法,例如,初始化与块的业务逻辑分离。块由
do
end
关键字分隔

接下来的两行实际上是一条语句:

twitter_client.follower_ids(twitter_username).each_slice(SLICE_SIZE).with_index do |slice, i|
它从twitterapi获取
twitter\u username
的跟随者id集合,从那里获取
SLICE\u SIZE
块中的元素,并将每个块及其索引传递到另一个块中。此块的内容执行的次数与
follower\u id
中的
SLICE\u SIZE
块的执行次数相同

下一行

twitter_client.users(slice).each_with_index do |f, j|
仅适用于当前块的元素。它获取块的每个元素,并将其与块中的索引一起传递给另一个块

到目前为止,它更多的是收集处理,而不是实际的业务逻辑

最内在的陈述

csv << [i * SLICE_SIZE + j + 1, f.name, f.screen_name]

csvcsv是一个类,实现对csv数据的处理

each_slice
是一种
Enumerable
方法,每次迭代只从源集合中获取这么多元素。例如,这样做是为了减少计算的内存需求,或者可能是为了在处理当前块之前延迟获取更多数据。
SLICE\u SIZE
值是要获取的元素数

CSV do | CSV |
初始化
CSV
对象,并将其作为参数传递给块。这是一种组织代码的方法,例如,初始化与块的业务逻辑分离。块由
do
end
关键字分隔

接下来的两行实际上是一条语句:

twitter_client.follower_ids(twitter_username).each_slice(SLICE_SIZE).with_index do |slice, i|
需要