Search icon CANCEL
Subscription
0
Cart icon
Cart
Close icon
You have no products in your basket yet
Save more on your purchases!
Savings automatically calculated. No voucher code required
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Julia 1.0 Programming Cookbook

You're reading from  Julia 1.0 Programming Cookbook

Product type Book
Published in Nov 2018
Publisher Packt
ISBN-13 9781788998369
Pages 460 pages
Edition 1st Edition
Languages
Authors (2):
Bogumił Kamiński Bogumił Kamiński
Profile icon Bogumił Kamiński
Przemysław Szufel Przemysław Szufel
Profile icon Przemysław Szufel
View More author details
Toc

Table of Contents (18) Chapters close

Title Page
Copyright and Credits
Dedication
About Packt
Contributors
Preface
1. Installing and Setting Up Julia 2. Data Structures and Algorithms 3. Data Engineering in Julia 4. Numerical Computing with Julia 5. Variables, Types, and Functions 6. Metaprogramming and Advanced Typing 7. Handling Analytical Data 8. Julia Workflow 9. Data Science 10. Distributed Computing 1. Other Books You May Enjoy Index

Understanding subtyping in Julia


In this recipe, we explain how subtyping in Julia works and how you should design method signatures to properly handle subtyping.

Getting ready

In this recipe, we reveal how to define a type that handles Gaussian integers with additional metadata.

A Gaussian integer is a complex number whose real and imaginary parts are both integers.

Note

In the GitHub repository for this recipe you will find the commands.txt file that contains the presented sequence of shell and Julia commands.

Now open your favorite terminal to execute commands.

How to do it...

Start with defining the custom Point type, and next learn how to store it in an array as follows:

  1. First, define the type that you will be working with:
julia> struct Point{T<:Integer, S<:AbstractString}
           pos::Complex{T}
           label::S
       end

julia> Point(x::T, y::T, label::S) where {T<:Integer,
                                          S<:AbstractString} =
           Point{T,S}(Complex...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €14.99/month. Cancel anytime}