Juliaのデータ型
typeof()で確認できる
型の上位型はsupertype()で確認できる
すべての型はAnyに属している?あんも.icon
型の下位型はsubtypes()で確認できる
抽象型: Abstract Type
isabstracttype()で確認できる
具象型: Concrete Type
isconcretetype()で確認できる
DataType(リテラル)とすれば求めるデータ型の値が得られる
code:jl
UInt8(176) # 0xb0
Int(0xb0) # 176
プリミティブ型: Primitive Type
複合型: Composite Type
いくつかの型を組み合わせたもの
実際にもっているフィールドはfieldnames()で確認できる
組み込みの複合型はフィールドの値を返す関数が実装されている
多重ディスパッチを適切に行うのに利用できるらしいあんも.icon
コレクション型: Collection Type
Any: すべての型の上位型
Number
Real
Integer
Bool: ブール型
Signed
BigInt
Int128
Int64: 64bit符号つき整数型
Int32
Int16
Int8
Unsigned
UInt128
UInt64: 64bit符号なし整数型
0x123456789abcddef
UInt32
0o1234567
UInt16
UInt8
0b11010101
AbstractFloat
BigFloat
Core.BFloat16?あんも.icon
Float64: 64bit浮動小数点数型
1.0e-17
Float16
Float32
1.0f0
Rational{T}: 有理数複合型
1//2
(:num, :den)
AbstractIrrational
Irrational: 無理数型?あんも.icon
Complex{T}: 複素数複合型
1 + im
(:re, :im)
AbstractChar
Char: 文字型
'あ'
AbstractString
String: 文字列型
"abc"
x = 1; "x = $(x)"
変数を展開できる
raw"C:\Users\user\Lecture": raw文字リテラル
エスケープシーケンスのかかかる文字列をそのまま流し込める
[Int(char) for char in string]のようにして対応するInt型にしてリストにできる
Int.(string)のようなブロードキャストはできない
文字列型は文字型のリストではない?あんも.icon
他の読み方ができてしまうからかもしれない?
AbstractArray{T, N}
DenseArray{T, N}
Array{T, N}: 配列型
AbstractVector{T}: AbstractArray{T, 1}のエイリアス
DenseVector{T}: DenseArray{T,1}のエイリアス
Vector{T}: ベクトル型
[1, 2, 3]
AbstractMatrix{T}: AbstractArray{T,2}のエイリアス
DenseMatrix{T}: DenseArray{T,2}のエイリアス
Matrix{T}: 行列型
[1 2; 3 4]
;は改行のように動作する
[1;2;;3;4]
LinearAlgebra.Transpose
[1 2; 3 4]'
LinearAlgebra.Adjoint
AbstractVector: AbstractArray{T, 1}のエイリアス
AbstractRange
OrdinalRange{T, T}
AbstractUnitRange{T}
UnitRange{T<:Real}: 範囲型
1:5
1:2:5
1:-1:5
AbstractDict
Dict: 辞書型
Ref
Ptr{T}: ポインタ型
通常は利用しないが、C言語とやり取りするときに利用する (:var, :body)
AbstractPattern
Regex
r"^a[b-f]+$": 正規表現リテラル
Tuple{Types...}: タプル
(1, 2)
Set: 集合
Type{T}
UnionAll