0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Julia における引数の指定法

Posted at

Juliaでは,関数の実引数(呼び出し時の引数)と仮引数(関数定義時の引数)にはいくつかの指定方法がある。以下に主な種類とその使い方を説明する。

1. 位置引数

位置によって値を渡す方法で,一番基本的な指定方法である。

function greet(name, age)
    println("Hello, $name! You are $age years old.")
end

greet("Alice", 30)  # 実引数は位置で対応する:name = "Alice", age = 30

2. デフォルト引数

仮引数にデフォルト値を設定できる。実引数を渡さなかった場合,デフォルト値が使用される。

function greet(name, age=20)
    println("Hello, $name! You are $age years old.")
end

greet("Bob")          # 実引数を1つだけ渡す:name = "Bob", age = 20(デフォルト値)
greet("Charlie", 25)  # 実引数を2つ渡す:name = "Charlie", age = 25

3. キーワード引数

名前で引数を渡す方法である。関数定義時に ; を使って定義する。

function greet(; name="Anonymous", age=0)
    println("Hello, $name! You are $age years old.")
end

greet()                     # name = "Anonymous", age = 0(デフォルト値)
greet(name="Diana")         # name = "Diana", age = 0(部分的に指定)
greet(name="Eve", age=35)   # name = "Eve", age = 35(すべて指定)

キーワード引数を必須にしたい場合はデフォルト値を設定しない。

function required_args(; name, age)
    println("Name: $name, Age: $age")
end

required_args(name="Frank", age=40)  # すべて必須

4. 可変長引数

仮引数に ... を付けることで,任意の個数の引数を受け取れる。

以下の例では numbers はタプルとして扱われる。

function sum_all(numbers...)
    return sum(numbers)
end

println(sum_all(1, 2, 3))         # 出力:6
println(sum_all(10, 20, 30, 40))  # 出力:100

5. 混合引数

位置引数、デフォルト引数,キーワード引数を組み合わせて使うことができる。ただし,ルールがある。

  • 位置引数 → デフォルト引数 → キーワード引数 の順に定義する
  • キーワード引数は関数呼び出し時に名前で指定する
function greet(name, age=20; greeting="Hello")
    println("$greeting, $name! You are $age years old.")
end

greet("Grace")                        # 出力:Hello, Grace! You are 20 years old.
greet("Hank", 25)                     # 出力:Hello, Hank! You are 25 years old.
greet("Ivy", 30; greeting="Hi there") # 出力:Hi there, Ivy! You are 30 years old.

6. 無名関数(ラムダ式)の引数

簡易的に書ける無名関数でも引数を指定できる。

f = x -> x^2  # 引数が1個のとき
println(f(4)) # 出力:16

g = (x, y) -> x + y  # 引数が2個のとき
println(g(2, 3))     # 出力:5

まとめ

  • 位置引数:シンプルでよく使う
  • デフォルト引数:一部を省略可能
  • キーワード引数:柔軟な指定が必要な場合に便利
  • 可変長引数:引数の数が不定の場合に使う
  • 無名関数:簡単な関数に使う
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?