Open1
Juliaのメモ
REPL操作
- シェルコマンド相当の命令
- ホームディレクトリの取得:
homedir()
- 戻り値の型は
String
- 移動はしない
- 戻り値の型は
- 作業フォルダ取得:
pwd()
- 戻り値の型は
String
- 戻り値の型は
- 作業フォルダ内のファイル・フォルダ一覧取得:
readdir()
- 戻り値の型は
Vector{String}
- 戻り値の型は
- 作業フォルダの移動:
cd(pwd() * "\\" * readdir()[1])
- ホームディレクトリの取得:
- パッケージモード
- 移行:
]
- 終了:
<backspaceキー>
- パッケージのインストール:
add <package name>
- 移行:
文字列操作
- 大文字変換:
res_upper = uppercase("Julia")
- 小文字変換:
res_lower = lowercase("JULIA")
- 変換:
res_replace = replace(str, "org" => "replaced")
- 連結:
res_concat = "hello, " * "world!"
- 結合:
res_join = join(["I", "am", "shit"], ",")
- 分割:
tokens = split("Ma.rch", ".")
- 戻り値の型は
Vector{SubString{String}}
- 戻り値の型を
Vector{String}
にしたい場合は、tokens = String.(split("Ma.rch", "."))
- 戻り値の型は
- 文字列の数値を変換しながら受ける
one, two = parse.(Int32, split("1 2"))
oneTowVec = parse.(Int32, split("1 2"))
ファイル入出力
- asciiファイル読み込み: 下記のどちらか
lines = readlines(filename)
lines = split(read(filepath, String), "\n")
- asciiファイル書き込み:
open(filepath, "w") do f
for line in lines
println(f, line)
end
end
コレクション
Set
- オブジェクトに対するSet
- オブジェクトのプロパティであるidで同値判定
struct MyObject
id::Int
name::String
end
Base.hash(obj::MyObject, h::UInt) = hash(obj.id, h)
Base.:(==)(obj1::MyObject, obj2::MyObject) = obj1.id == obj2.id
my_set = Set{MyObject}()
push!(my_set, MyObject(1, "Object1"))
push!(my_set, MyObject(2, "Object2"))
MyObject(1, "test") in my_set
JSON
JSON.jsを利用:
using JSON
s = "{\"a_number\": 5.0, \"an_array\": [\"strin\", 9]}"
parsed = JSON.parse(s)
jsoned = JSON.json(parsed)