Introduction to the Type Hints Library¶
In this chapter we will learn about the Type Hints Library
Why Type Hints?¶
Using this library we can add the type information to the source code which will be very useful for tools like
- Code Editors
- Static-Analysis
Note
Ring is a dynamic language, No type checking will be done by the compiler.
Example¶
The next example will use the Type Hints library
load "typehints.ring"
see sum(3,4) + nl ;
see sayHello("Mahmoud");
int func sum(int x,int y) {
return x+y ;
}
string func sayHello(string name) {
return "Hello " + name ;
}
User Types¶
The Type Hints library is very powerful and will support user types (Classes) automatically
Example:
load "typehints.ring"
import mypackage
test() { main([:one,:two,:three]) }
myclass func test() {
see "Testing User Types!" + nl
return new myclass
}
package mypackage {
public class myclass {
public static void func main(list args) {
see "welcome" + nl
see args
}
}
}
Using Types inside Code¶
Also you can use the types inside the code (not only the function prototype)
Example:
load "typehints.ring"
int sum = sum(3,4)
string msg = sayHello("Mahmoud")
see "Sum = " + sum + nl + msg + nl
int func sum(int x,int y) {
return x+y ;
}
string func sayHello(string name) {
return "Hello " + name ;
}
Rules¶
- To use the types in the function prototype you must use ‘(‘ and ‘)’ around parameters
- To use the types in the function code, You must set the variable value (Assignment).
The next types are defined by the library
# Low Level Types
char
unsigned
signed
int
short
long
float
double
void
# High Level Types
string
list
number
object
# Other
public
static
abstract
protected
override