7.5. StrongTyping

7.5.1. Překlad a instalace
7.5.2. Použití
7.5.3. Metody modulu StrongTyping

section id="strongtyping" xreflabel="StrongTyping" condition="author"

Odkazy a zdroje:

StrongTyping is a little ruby module that provides a convenient way for ruby methods to check parameter types, and also dynamically query them. In addition to merely checking a single set of types, it allows easy overloading based on a number of different templates.

Mějme funkci

     def foo(a, b)
         ...
      end

Now let's say this function wants 'a' to always be a String, and 'b' should be Numeric:

      require 'strongtyping'
      include StrongTyping

      def foo(a, b)
         expect(a, String, b, Numeric)
         ...
      end

Overloading is just as easy:

      require 'strongtyping'
      include StrongTyping

      def bar(*args)
         overload(args, String, String) {
            | s1, s2 |
            ...
            return
         }

         overload(args, String, Integer) {
            | s, i |
            ...
            return
         }

         overload_default args
      end

Uvádím popis modulu strongtyping v kapitole Extrémní programování protože se domnívám že má k této tématice nejblíž.

Ruby je jazyk s dynamickými typy. To znamená že typ není svázán s proměnnou/parametrem. U předávaných parametrů tedy není typ znám a když předáme metodě takový typ který není logikou zpracování očekáván nastane výjimka způsobená chybou při práci s hodnotou. Modul StrongTyping nám dává nástroj pro snadnou kontrolu typu předávané hodnoty.

Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .