Types
In Sidef, a new type can be declared as a class and its name can be used in function or method parameters to provide dynamic type checking:
1
class Point(Number x, Number y) {
2
method to_s { "Point(#{x}, #{y})" } # auto-stringification
3
}
4
5
func foo(Point p) {
6
say p
7
}
8
9
foo(Point(5, 6))
Copied!
A type can be veryfied by using the .kind_of(TYPE) method, which is defined inside the Object class, which is the parent of all classes (including user-defined classes):
1
say "foo".kind_of(String) #=> true
2
say "bar".kind_of(Number) #=> false
Copied!
The type of an object can be found usind the following two methods (which are also defined inside the Object class):
1
say "foo".ref #=> Sidef::Types::String::String
2
say "foo".class #=> String
Copied!
Last modified 1yr ago
Copy link