や、言語関係など覚えたいもの、覚えるべきものはたくさんある一方で、注目が集まっているから、やってみたい。ということでプログラミング言語としてのを学んでいく。
前回
2. Juliaの言語機能
2.3 制御構文
2.3.1 条件評価
ではというキーワードを用いて条件評価のブロックを構成する。また三項演算子で記述することができる。簡易な条件評価であれば1行で簡潔に記述できるのがメリットである。
x = 3; y = 2 # シンプルな書き方 if x < y println("x = $(x) is less than y = $(y).") elseif x > y println("x = $(x) is larger than y = $(y).") else println("x = $(x) is equal to y = $(y).") end # 別の書き方:三項演算子 x = 100 x > 100 ? true : false # a ? b : cはaの評価結果がtrueであればbを、falseであればcを返す
2.3.2 短絡評価
短絡評価はやという演算子を用いた条件評価を指す。コードが簡潔になるためにの標準ライブラリ内で頻繁に用いられている。
n = -100 n < 0 && error("n must be positive.") # a && b => aである場合にbを返す n >= 0 || error("n must be non-negative.") # a || b =>aでない場合にbを返す
2.3.3 ループ
文を用いると、指定した条件を満たす間にからまでを繰り返す。
i = 1 # Juliaではブロック内で宣言した変数はローカル変数になる while i <= 5 println(i) global i += 1 # while文の外(条件文で扱うためにglobal変数とする) end
2.3.4 try/catch/finally
//はプログラムの例外処理を行うための構文である。テストしたいコードをブロックとして指定し、ブロックの処理中に例外が発生したら、処理を中断してブロックの処理が始まる。かの処理が終了すると、の処理が行われる。とは必須ではないため、/や/も許容される。
str = 'あ' try i = parse(Int,str) catch println("例外処理を行いました。") end
2.3 関数
##################### ### Juliaでの関数 ### ##################### ### 関数の3つの基本的な書き方 ## Juliaでは関数を以下のように宣言する: function add(x,y) return x + y end ## ただしreturnで戻り値を宣言しなくとも最後に計算した値が自動的に返り値になる function add2(x,y) x + y end ## さらに簡単な関数であれば1行で書ける add3(x, y) = x + y # println(add(1,3)) println(add2(1,3)) println(add3(1,3)) println("############################") ### 関数での型指定 ## 引数および返り値の型を指定できる add_typed(x::Int, y::Int) = x + y add_typed2(x::Int, y::Int)::Float64 = x + y add_typed3(x::Float64, y::Float64)::Int = x + y # println(add_typed(1,3)) try println(add_typed(1.0,3.2)) catch println("error") end println(add_typed2(1,3)) try println(add_typed3(1.0,3.0)) catch println("error") end # 暗黙的な型変換が出来ないとエラーになる try println(add_typed3(1.0,3.2)) catch println("error") end ### 戻り値を複数にする sum_diff(x, y) = (x + y, x- y) println(sum_diff(3,1))