Snabbreferens

Ruby 2.1 funktioner fusklapp

En historisk referensguide för milstolpefunktioner i Ruby 2.1: obligatoriska nyckelordsargument, def som returnerar symboler och literaler.

· Publicerad

Ruby 2.1 introducerade betydande syntaxförbättringar i språket, inklusive obligatoriska nyckelordsargument och att def returnerar metodnamnet som en symbol.

Obligatoriska nyckelordsargument (Keyword Arguments)

Nyckelordsargument utan standardvärde blir strikt obligatoriska:

# length är obligatoriskt; char har standardvärdet '0'
def pad(number, length:, char: "0")
  number.to_s.rjust(length, char)
end

pad(42, length: 6) # => "000042"
pad(42)            # ArgumentError: missing keyword: :length

Metoddefinitioner returnerar symboler

I Ruby 2.1+ returnerar def metodnamnet som en Symbol, vilket möjliggör inline-modifierare:

class User
  # Gör private inline
  private def secret_token
    "secret"
  end

  # Kedja med moduldekoratörer
  memoize def expensive_computation
    sleep 2
    42
  end
end

Numeriska och literala förbättringar

# Rationell literal-suffix 'r'
2/3r # => (2/3)

# Komplext literal-suffix 'i'
3 + 4i # => (3+4i)

# Optimering med frysta strängar: 'freeze'
"constant_string".freeze

Referenser

Relaterade ämnen