2017-10-06 6 views
1

Est-il possible de faire des méthodes statiques dans les modules comme dans Ruby?Est-ce que Crystal a des méthodes statiques?

module Test 
    self.def test 
     puts "test" 
    end 
end 
Test::test 

je reçois un expecting token 'EOF', not 'end' si l'appel est dans le même fichier (comme indiqué dans le exemple) et un expecting token 'CONST', not 'test' si je place l'appel dans un autre fichier.

Qu'est-ce que je suis mal doig? Existe-t-il des méthodes statiques dans les modules de Crystal?

Répondre

4

La syntaxe correcte pour les méthodes de classe est def self.test, et non self.def test. Les méthodes de classe sont appelées en utilisant Test.test, et non Test::test.