function 関数名(引数) 処理 戻り値 end
return文を書いた場合
function 関数名(引数) 処理 return 戻り値 end
return文は省略できます
return文を省略した場合、最後の文の数値が戻り値になります
引数の型も指定する必要はなくjulia側で自動で判定してくれます(多重ディスパッチ機能)
もちろん引数の型をすることもできます
以下ではaとbを引数として渡して
その足し算をしてから答えを戻り値として返すaddという関数を作ってみます
function add(a, b) a + b end
と定義して
5+7の計算
add(5,7) 答え >>12
と使うことができます
驚くべきは引数の型を指定しなくてよいので
整数でも実数でも複素数や行列までそのままで1つの関数を作るだけで
そのまま計算できてしまいます
(ただし数学上計算できないものはもちろんエラーになります)
整数 x=10 y=5 複素数 c1 = 2 + 6im c2 = 1 + 3im 行列 m1 = [2,5;3,4] m2 = [3,2;5,2] add(x,y) >>15 add(c1,c2) >>3+9im add(m1,m2) >>[5,7;8,6]
行列や複素数までそのまま同じ関数で計算できるのはjuliaの特徴であり
他のプログラミング言語に比べてもかなり強力な機能です
引数の型を指定して書くこともできます
これにより引数の型によって同じ関数名で違う処理を分けてすることができます
つまりC++言語などでのオーバーロード関数と同じことができるわけです
引数がInt64の整数の場合だけに指定したいとき
整数(Int64)の場合は足し算
function calcXY(x::Int64, y::Int64) x + y end
しかし実数(Float64)の場合は引き算にしたいときは
function calcXY(x::Float64, y::Float64) x - y end
関数はイコール(代入)を使った書き方もできます
ただし1行までです
短い関数ならこちらの方が便利でしょう
add(a,b) = a + b add(1,2) >>3
if文とreturnを使った例
引数aが10未満であれば9を返しreturn文によって関数を途中で抜け出します
そうでなければ1を返します
function testswitch(a) if a < 10 return 9 end 1 end testswitch(8) >>9 testswitch(15) >>1 関数の返す戻り値のTypeを指定する 戻り値を実数のFloat16で返したい場合 function add(a,b)::Float16 a + b end add(5,2) >>Float16(7)
コメントをかく