Differences between revisions 1 and 2
Revision 1 as of 2026-01-17 19:32:38
Size: 1522
Comment: Initial commit
Revision 2 as of 2026-01-18 17:50:47
Size: 1721
Comment: Some changes
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Julia is a dynamically typed language. Values have a concrete type. While Julia is a dynamically typed language, values have a concrete type.
Line 6: Line 6:

----



== Type Hints ==

To provide the interpreter/compiler a type hint, try:

{{{
julia> (1+2)::Int
}}}

This acts as a type assertion: if the annotated value is not that type, then a type error is thrown.
Line 73: Line 59:
----



== Composite Types ==

Structs are a composite data type. Struct values can be instantiated like:

{{{
julia> struct Foo
           bar
           baz
           qux
       end

julia> foo = Foo("Hello, world.", 23, 1.5)
Foo("Hello, world.", 23, 1.5)
}}}

Fields are accessed by the dot operator.

{{{
julia> foo.bar
"Hello, world."
}}}

By default, struct objects are immutable.

Julia Data Types

While Julia is a dynamically typed language, values have a concrete type.


Abstract Types

Abstract types should not be used directly. They are supertypes that categorize behaviors. They are however useful for constructing a novel data type, or for typing the arguments to a function.

The primary set of abstract types, with their hierarchy of supertypes and subtypes indicated by indentation, is:

  • Number

    • Real

      • AbstractFloat

      • Integer

        • Signed

        • Unsigned

  • AbstractChar

  • AbstractString


Numeric Types

The set of primitive types that descend from the Number abstract type are:

  • Bool

  • Int8

  • Int16

  • Int32

  • Int64

  • Int128

  • UInt8

  • UInt16

  • UInt32

  • UInt64

  • UInt128

  • Float16

  • Float32

  • Float64


String Types

String is a subtype of AbstractString that implicitly is encoded in UTF-8.

Packages may create novel subtypes of AbstractString, so consider typing string arguments for functions as AbstractString rather than String.

Char is a subtype of AbstractChar, and is a 32-bit representation a Unicode character.


Composite Types

Structs are a composite data type. Struct values can be instantiated like:

julia> struct Foo
           bar
           baz
           qux
       end

julia> foo = Foo("Hello, world.", 23, 1.5)
Foo("Hello, world.", 23, 1.5)

Fields are accessed by the dot operator.

julia> foo.bar
"Hello, world."

By default, struct objects are immutable.


CategoryRicottone

Julia/DataTypes (last edited 2026-01-18 23:01:45 by DominicRicottone)