Skip to Content
Learning Julia: Introduction to Types
book

Learning Julia: Introduction to Types

by Spencer Russell, Leah Hanson
October 2017
Beginner
20 pages
16m
English
O'Reilly Media, Inc.
Content preview from Learning Julia: Introduction to Types

Introduction to Types in Julia

Julia’s type system is one of its core strengths and a key to the language’s high performance. It also enables a flexible programming style such that the programmer can often ignore types entirely or choose to explicitly specify them only when it’s useful for expressivity or to give the compiler hints that can improve performance. When left unspecified, Julia can often discover types at compile time by examining your code, or at runtime (during the execution of your program) by tagging values as they move throughout the program. When Julia knows the types of values at compile time, it’s able to generate faster code that’s optimized for those specific types.

But what exactly is a type? In programming languages, types specify facts that are true for any values (or instances) of that type. For example, Alice and Bob might both be represented by the Person type, and all instances of the Person type have name, age, and birthday fields and support the run method. So, if the compiler knows that a given value (say Alice) is of the type Person, it knows it can access those fields without checking if they exist. It might even know where in memory that data is located.

Types are also an expressive tool for programmers to categorize objects that behave differently. For instance, the Person type above supports the run method that moves them at a certain speed, whereas values of the Cheetah type might run faster.

Note

Languages are often categorized as dynamically ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Learning Julia: Abstract, Concrete, and Parametric Types

Learning Julia: Abstract, Concrete, and Parametric Types

Spencer Russell, Leah Hanson
Julia: High Performance Programming

Julia: High Performance Programming

Ivo Balbaert, Avik Sengupta, Malcolm Sherrington

Publisher Resources

ISBN: 9781491999646Errata Page