2019年4月16日火曜日

[Julia] データ型

Julia のデータ型についてのメモです.

まずは,整数型についてです.
julia> 12345
12345

julia> typeof(12345)
Int64

julia> 1
1

julia> typeof(1)
Int64
整数型にはInt8, 16, 32, 64, 128型がありますが,特に指定しなければInt64型として扱われるようです.

浮動小数点型について
julia> 1.2345
1.2345

julia> typeof(1.2345)
Float64
浮動小数点型にはFloat8, 16, 32, 64, 128型がありますが,特に指定しなければFloat64型として扱われるようです.

複素数型について
julia> 1 + 2im
1 + 2im

julia> typeof(1 + 2im)
Complex{Int64}

julia> 1 + 2.0im
1.0 + 2.0im

julia> typeof(1 + 2.0im)
Complex{Float64}
複素数型は,X + Yim という形で記載します.Xが実数部,Yが虚数部になります.
複素数型にはComplex32, 64方がありますが,特に指定しなければ,入力の方に合わせて型が決められるようです.上記の" 1 + 2im "では,Complex{Int64}型(実数部,虚数部ともにInt64型)," 1 + 2.0im "ではComplex(Float64)型となっています.

有理数型について
julia> 1 // 2
1//2

julia> typeof(1 // 2)
Rational{Int64}
有理数型では,上記のように各値はInt64型で扱われています.

真偽値について
julia> true
true

julia> typeof(true)
Bool
真偽値はtrueとfalseの2通りです.

文字(Char)について
julia> 'a'
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
文字は,シングルクォーテーション ' で括ります.上記の例のように,'a'とした場合は,Char型として扱われていることがわかります.

Strings型について
julia> "Hello World"
"Hello World"

julia> typeof("Hello World")
String

julia> 'Hello World'
ERROR: syntax: invalid character literal
Strings型はダブルクォーテーション " で括ります.上記の例のように,シングルクォーテーションで括っても,Strings型とは見なされません.

Strings型の連結を行うには演算子 * を用います.
julia> "abc" * "def"
"abcdef"

julia> "abc" + "def"
ERROR: MethodError: no method matching +(::String, ::String)
Closest candidates are:
  +(::Any, ::Any, ::Any, ::Any...) at operators.jl:502
Stacktrace:
 [1] top-level scope at none:0
上記の例のように,+ で連結はできません.

また,以下のように,Strings型の中で $( ) で括れば四則演算が可能です.当然,演算結果はStrings型となります.
julia> "1 + 2 = $(1 + 2)"
"1 + 2 = 3"

なお,上記の例のJupyter Notebookファイルは,GitHubJulia_Beginner_01というファイルで見ることができます.

0 件のコメント :

コメントを投稿