Keyword lists are typically used in the context of options passed to functions.
| defmodule Canvas do |
| |
| @defaults [ fg: "black", bg: "white", font: "Merriweather" ] |
| |
| def draw_text(text, options \\ []) do |
| options = Keyword.merge(@defaults, options) |
| IO.puts "Drawing text #{inspect(text)}" |
| IO.puts "Foreground: #{options[:fg]}" |
| IO.puts "Background: #{Keyword.get(options, :bg)}" |
| IO.puts "Font: #{Keyword.get(options, :font)}" |
| IO.puts "Pattern: #{Keyword.get(options, :pattern, "solid")}" |
| IO.puts "Style: #{inspect Keyword.get_values(options, :style)}" |
| end |
| |
| end |
| |
| Canvas.draw_text("hello", fg: "red", style: "italic", style: "bold") |
| |
| # => |
| # Drawing text "hello" |
| # Foreground: red |
| # Background: white |
| # Font: Merriweather |
| # Pattern: solid |
| # Style: ["italic", "bold"] |
For simple access, you can use the access operator, kwlist[key]. In addition, all the functions of the Keyword and Enum modules are available.[14][15]