November 2017
Intermediate to advanced
670 pages
17h 35m
English
In Go and other statically typed languages, such as C, C++, Java, and Scala, the compiler will catch type mismatches at compile time. In contrast, dynamically typed languages such as Ruby, SmallTalk, and Python catch these type errors at runtime and rely more on error handling to keep our programs from crashing.
In statical yet dynamic typed languages, we can easily write a function definition without mentioning the data types, like this:
def add(a, b) a+bend
This works great when we pass it the correct data:
>> add(1,2)=> 3
However, runtime exceptions occur when we pass types that are compatible:
>> add(1,Time.now)TypeError: Time can't be coerced into Integer