def each_sections(&block)
      return enum_for(:each_sections) unless block_given?

      Array.new(num_sections) do |i|
        section_at(i).tap(&block)
      end
    end
def each_sections(&block)
      return enum_for(:each_sections) unless block_given?

      Array.new(num_sections) do |i|
        section_at(i).tap(&block)
      end
    end
Iterate all sections.

 All sections are lazy loading, the section
 only be created whenever accessing it.
 This method is useful for {#section_by_name}
 since not all sections need to be created.
 @yieldparam [ELFTools::Sections::Section] section A section.
 @yieldreturn [void]
 @return [Enumerator<ELFTools::Sections::Section>, Array<ELFTools::Sections::Section>]
   As +Array#each+, if block is not given, a enumerator will be returned,
   otherwise, the whole sections will be returned.