###関数 (2)応用編(書き方例)
◆型指定
# 引数はInt型(整数)を指定、返り値はFloat64(実数)を指定
function comsumption_tax(price::Int)::Float64
tax_rate = 1.08
return tax_rate * price
end
◆型指定(一行表示)
comsumption_tax(price::Int)::Float64 = tax_rate * price
◆可変長引数
■例文1
function summation(v...)
total = 0
for i in v
total += v[i]
end
return total
end
■例文2
function summation2(v::Int...)
total = 0
for i = 1:length(v)
total += v[i]
end
return total
end
◆オプショナル引数
# 引数の初期値を予め設定(下例:v2の初期値を100に設定)
function foptional(v1, v2=100)
total = v1 + v2
return total
end
◆キーワード引数
# 区切り文字に;(セミコロン)を使用(詳細は下部の解説を参照)
function car(length, width; color="white", price=10000)
println("special car:")
println(" lenth x width = ", length, " x ", width)
println(" color = ", color)
println(" price = ", price)
end
◆匿名関数
■例文1
# 引数は1つのみ指定可
price = x -> x * 1.08
■例文2
# 複数行の場合は、begin~endで囲う
nebiki = x -> begin
price = x * 0.9
return price * 1.08
end
##解説
####(1)型指定
型の指定は必須ではありませんが、指定することも可能です。
引数だけの型指定でも構いませんし、返り値だけの型指定でも構いません。
型が一致しない関数を呼び出すとエラーが発生します。
####(2)可変長引数
◆要約
①引数の数を変えて使用することができます。
②設定できる引数は、最後の引数だけです。
③2つ以上の引数を可変長にすることもできません。
④可変長引数に型指定設定できます。
①引数の数を変えて使用することができます。
下図の例では、引数が1つ、2つ、3つの場合です。
引数に設定する値はリスト(実際にはタプル)として取り出しますので、以下のようにループ部分を書くこともできます。
②設定できる引数は、最後の引数だけです。
以下のような書き方はできません。
function summation(v..., x)
...
③2つ以上の引数を可変長にすることもできません。
④可変長引数に型指定設定できます。
可変長引数に型指定をする場合は、以下のように設定します。
function summation(v::Int...)
...
####(3)オプショナル引数
◆要約
①引数の初期値を予め設定しておくことができます。
②複数の引数をオプショナルに指定することができます。
③オプショナル引数は引数の末尾にまとめて書きます。
①引数の初期値を予め設定しておくことができます。
引数の値が省略された場合はこの初期値が適用されます。
②複数の引数をオプショナルに指定することができます。
③オプショナル引数は引数の末尾にまとめて書きます。
以下のような書き方はできません。
function foptional(v2=10, v1)
...
####(4)キーワード引数
複数の引数のうち、特定の引数の値を特に設定したい場合に使用します。
以下の例では初めの2つの引数は通常の引数で、さらに、複数ある引数のうちpriceの値を設定した例です。
通常の引数とキーワード引数の区切りに ; (セミコロン)を使用する点に注意して下さい。
####(5)匿名関数
アロー関数によく似た関数です。
◆要約
①引数は一つのみ指定できます。
②複数行の処理を定義する場合は、begin~endで囲みます。
①引数は一つのみ指定できます。
引数を複数設定することはできません。
②複数行の処理を定義する場合は、begin~endで囲みます。
以下の例では2行の処理を行っています。
##もくじ
Julia早引きノート[01]変数・定数の使い方
Julia早引きノート[02]算術式、演算子
[Julia早引きノート[03]複素数]
(https://qiita.com/ttabata/items/225c77a4d71fafc3e482)
Julia早引きノート[04]正規表現
....
もくじを開く
##関連情報
Julia - 公式ページ
https://julialang.org/
Julia - 日本語公式ドキュメント
https://julia-doc-ja.readthedocs.io/ja/latest/index.html
初めてのJuliaとインストール (Windows & Linux)
https://qiita.com/ttlabo/items/b05bb43d06239f968035
Julia - Mathematics
https://docs.julialang.org/en/v1/base/math/
##ご意見など
ご意見、間違い訂正などございましたらお寄せ下さい。