Coreはビルトイン(組込み)と見なされる全ての識別子を含む標準モジュールである。つまり、ライブラリではなく、Julia言語の一部である。これらの定義無しには何もできないため、全てのモジュールは暗黙的に「using Core
」を含む。
Nothing型のシングルトン・インスタンスで、(C言語のvoid関数のように)返す値がない場合や、変数やフィールドが値を持たない場合に慣習的に使われる。
julia> NullableInt64 = Union{Int64, Nothing}
Union{Nothing, Int64}
julia> x::NullableInt64 = nothing
julia> x = 1
1
すべての浮動小数点数の抽象スーパータイプ
Number (Abstract Type)
└─ Real (Abstract Type)
└─ AbstractFloat (Abstract Type)
├─ Float16
├─ Float32
├─ Float64
└─ BigFloat
他の数値との算術演算において、自動的に正しい精度に丸められる。
Number (Abstract Type)
└─ Real (Abstract Type)
└─ AbstractIrrational (Abstract Type)
└─ Irrational
Core.ArgumentError は、関数に渡された引数が無効であるときに発生するエラーである。
julia> Base.ascii("π")
ERROR: ArgumentError: invalid ASCII at index 1 in "π"
Juliaにおける Core.Bool は、true (1) または false (0) を表すブール型である。
Bool <: Integer
Number (Abstract Type)
└─ Real (Abstract Type)
└─ Integer (Abstract Type)
└─ Bool
Complex{T<:Real} <: Number
T型の実数部と虚数部を持つ複素数型。
Number (Abstract Type)
└─ Complex
Juliaにおける Core.Float16 は、IEEE 754で規定されている半精度の浮動小数点数を表すデータ型である。
部 | ビット数 |
---|---|
符号部 | 1 bit |
指数部 | 5 bit |
仮数部 | 10 bit |
Juliaにおける Core.Float32 は、IEEE 754で規定されている単精度の浮動小数点数を表すデータ型である。
部 | ビット数 |
---|---|
符号部 | 1 bit |
指数部 | 8 bit |
仮数部 | 23 bit |
型変換関数を使ってデータ型を変換することができる。
julia> Float32(pi)
3.1415927f0
julia> Float64(pi)
3.141592653589793
julia> BigFloat(pi)
3.141592653589793238462643383279502884197169399375105820974944592307816406286198
Juliaにおける Core.Float64 は、IEEE 754で規定されている倍精度の浮動小数点数を表すデータ型である。
部 | ビット数 |
---|---|
符号部 | 1 bit |
指数部 | 11 bit |
仮数部 | 52 bit |
データ型を指定して計算する。
julia> (pi * 2)::Float64
6.283185307179586
Juliaにおける Core.Int8 は、8ビットの符号あり整数型である。最小値 -1×27 から最大値 27-1 までの整数を表すことができる。
ローカル変数のデータ型として Int8 を指定する例を次に示す。
local x::Int8
Juliaにおける Core.Int16 は、16ビットの符号あり整数型である。最小値 -1×215 から最大値 215-1 までの整数を表すことができる。
引数のデータ型として Int16 を指定する例を次に示す。
function f(x::Int16)
x / 2
end
Juliaにおける Core.Int32 は、32ビットの符号あり整数型である。最小値 -1×231 から最大値 231-1 までの整数を表すことができる。
関数の戻り値のデータ型として Int32 を指定する例を次に示す。
function f(x)::Int32
x * 2
end
Juliaにおける Core.Int64 は、64ビットの符号あり整数型である。最小値 -1×263 から最大値 263-1 までの整数を表すことができる。
Juliaにおける Core.Int128 は、128ビットの符号あり整数型である。最小値 -1×2127 から最大値 2127-1 までの整数を表すことができる。
すべての整数を表す抽象スーパータイプ
Number (Abstract Type)
└─ Real (Abstract Type)
└─ Integer (Abstract Type)
├─ Bool
├─ Signed (Abstract Type)
│ ├─ Int8
│ ├─ Int16
│ ├─ Int32
│ ├─ Int64
│ ├─ Int128
│ └─ BigInt
└─ Unsigned (Abstract Type)
├─ UInt8
├─ UInt16
├─ UInt32
├─ UInt64
└─ UInt128
Irrational{sym} <: AbstractIrrational
symで示される正確な無理数値を表す数値型
フィールドを持たない型
julia> NullableInt64 = Union{Int64, Nothing}
Union{Nothing, Int64}
julia> x::NullableInt64 = nothing
julia> x = 1
1
Core.Number は全ての数値型における抽象スーパータイプであり、以下に示す派生型がある。
Number (Abstract Type)
├─ Complex
└─ Real (Abstract Type)
├─ AbstractFloat (Abstract Type)
│ ├─ Float16
│ ├─ Float32
│ ├─ Float64
│ └─ BigFloat
├─ Integer (Abstract Type)
│ ├─ Bool
│ ├─ Signed (Abstract Type)
│ │ ├─ Int8
│ │ ├─ Int16
│ │ ├─ Int32
│ │ ├─ Int64
│ │ ├─ Int128
│ │ └─ BigInt
│ └─ Unsigned (Abstract Type)
│ ├─ UInt8
│ ├─ UInt16
│ ├─ UInt32
│ ├─ UInt64
│ └─ UInt128
├─ Rational
└─ AbstractIrrational (Abstract Type)
└─ Irrational
Rational{T<:Integer} <: Real
分子と分母がT型の有理数型。有理数はオーバーフローがチェックされる。
すべての実数を表す抽象的なスーパータイプ
すべての符号付き整数の抽象スーパータイプ
Juliaにおける Core.UInt8 は、8ビットの符号なし整数型である。最小値 0 から最大値 28-1 までの整数を表すことができる。
Juliaにおける Core.UInt16 は、16ビットの符号なし整数型である。最小値 0 から最大値 216-1 までの整数を表すことができる。
Juliaにおける Core.UInt32 は、32ビットの符号なし整数型である。最小値 0 から最大値 232-1 までの整数を表すことができる。
Juliaにおける Core.UInt64 は、64ビットの符号なし整数型である。最小値 0 から最大値 264-1 までの整数を表すことができる。
Juliaにおける Core.UInt128 は、64ビットの符号なし整数型である。最小値 0 から最大値 2128-1 までの整数を表すことができる。
すべての符号なし整数の抽象スーパータイプ
Core.Union は共用体を定義する型である。共用体とは、複数の型を受け入れることができる型である。
Core.Int64 および Core.Nothing の両方を受け入れる型と変数を宣言する例を以下に示す。
julia> NullableInt64 = Union{Int64, Nothing}
Union{Nothing, Int64}
julia> x::NullableInt64 = nothing
julia> x = 1
1
Core.tuple 関数を使って Core.Tuple を生成することができる。
tuple(xs...)
julia> t = tuple(1, 2, 3)
(1, 2, 3)
Julia のデータ型は Core.typeof 関数で確認できる。
typeof(x)
julia> typeof(1)
Int64
julia> typeof(1.0)
Float64
julia> typeof(true)
Bool
julia> typeof('A')
Char
julia>; typeof('あ')
Char
julia> typeof("ABC")
String
julia> typeof(r"AB*")
Regex
julia>
Float32(x)
Float32(x, mode::RoundingMode)
値 | 説明 |
---|---|
RoundNearest | default |
RoundNearestTiesAway | |
RoundNearestTiesUp | |
RoundToZero | |
RoundFromZero | |
RoundUp | |
RoundDown |
Core.Float32() は数値のデータ型を Core.Float32
に変換するメソッドである。端数は絶対値が大きい方へ丸められる。
julia> Float32(1/3)
0.33333334f0
julia> Float32(-1/3)
-0.33333334f0
第2引数に RoundDown を指定することで、端数を小さい方へ切り下げることができる。
julia> Float32(1/3, RoundDown)
0.3333333f0
julia> Float32(-1/3, RoundDown)
-0.33333334f0
第2引数に RoundUp を指定することで、端数を大きい方へ切り上げることができる。
julia> Float32(1/3, RoundUp)
0.33333334f0
julia> Float32(-1/3, RoundUp)
-0.3333333f0
Float64(x)
Float64(x, mode::RoundingMode)
値 | 説明 |
---|---|
RoundNearest | default |
RoundNearestTiesAway | |
RoundNearestTiesUp | |
RoundToZero | |
RoundFromZero | |
RoundUp | |
RoundDown |
型変換関数を使ってデータ型を変換することができる。
julia> Float64(pi)
3.141592653589793
julia> Float64(pi * 2)
6.283185307179586
julia>
既存の抽象文字列(AbstractString)から新しい文字列(String)を作る。
String(s::AbstractString)
Institute of Electrical and Electronics Engineers (2022) 754-1985 - IEEE Standard for Binary Floating-Point Arithmetic
Institute of Electrical and Electronics Engineers (2022) 754-2019 - IEEE Standard for Floating-Point Arithmetic