Programming Languages as Essays - eviltoast
  • morrowind@lemmy.ml
    link
    fedilink
    arrow-up
    6
    ·
    1 year ago
    for item in array do
      puts item[:name]
    end
    

    What’s with the weird syntax, isn’t idiomatic ruby

    array.each do |item|
      puts item[:name]
    end
    

    (or the shorthand version)?

    • CarrotIsland@beehaw.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Was about to say as someone who’s been using Ruby for over a decade, 8 of which professionally, I’ve never once come across a for loop. each on the other hand, all day every day.

    • AnomalousBit@programming.dev
      link
      fedilink
      arrow-up
      1
      arrow-down
      2
      ·
      edit-2
      1 year ago

      First time I’ve ever heard someone call a for loop “weird“. They’ve been around for 50 years 😂

      The whole point was on readability, not trying to make rubocop be quiet. Sure, .each is great, but I’m not sure about it being shorthand. What did you save? Like 3 characters? I find the for loop more readable unless I’m method chaining.

      • morrowind@lemmy.ml
        link
        fedilink
        arrow-up
        3
        arrow-down
        1
        ·
        edit-2
        1 year ago

        Not in ruby, the for loop was initially put there to make it friendly for people from other languages and is discouraged. It’s just syntax sugar on top of each.

        By shortand version I meant

        array.each(&:to_s)
        

        (although in this case I’m not calling puts anymore)

        edit: lemmy keeps putting the & there, but you know what I mean

        • AnomalousBit@programming.dev
          link
          fedilink
          arrow-up
          1
          arrow-down
          2
          ·
          1 year ago

          Not in Ruby

          It’s valid syntax, it’s part of Ruby. It’s easy to read and familiar across many languages. Write what you want to write, I’m not sure why you feel the need to finger wag.