[Swift] 5. n.関数


  • swiftの学習内容をまとめた文章です.
  • 記事は
  • を参照して作成されます.
  • 関数とは?
    関数は,特殊なタスクを実行するために独立して設計されたコードの集合といえる.
    関数を使用すると、繰り返しプログラミングを避けることができます.
    関数を呼び出して特定の目的を達成し、メンテナンス時間とコストを節約します.
    関数とメソッド
    前学期のプロジェクトの授業で、教授は関数と方法の違いを聞いたことがある.本でも授業でも関数と方法の2つの用語が混用されている.同じだと思っていたのですが質問するとちょっと慌てて
    関数と方法は「同じ」を一言で表すことができる.ただ、場合や位置によって、異なる用語で呼ぶだけです.構造体、クラス、列挙タイプなどの特定のタイプに関連付けて使用される関数は、メソッドおよびモジュールでグローバルに使用可能な関数を一般関数と呼びます.
    関数の定義と呼び出し
    スウィフトの関数の自由度は非常に高いと言われています.デフォルトでは、関数の名前やパラメータ、戻りタイプなどを使用して関数を定義します.
    定義関数のキーワードはfuncで、次のように定義されています.
    func 함수 이름 (파라미터 이름: 데이터 타입) -> 반환 타입 {
    	실행 코드
        return 반환 값
    }
    次に、基本的な関数のサンプルコードを示します.
    func hello(name: String) -> String {
    	return "Hello \(name)"
    }
    
    let helloJenny: String = hello(name: "Jenny")
    print(helloJenny)
    Hello Jenny
    関数内のコードが1行で、コードの結果タイプが戻りタイプと一致している場合は、次のようにreturnキーワードを省略できます.(戻り値がない場合は省略!)
    func hello(name: String) -> String {
    	"Hello " + name
    }
    
    let helloAmy: String = hello(name: "Amy")
    print(helloAmy)
    Hello Amy
    パラメータ
    sweetの関数は、パラメータをどのように定義するかによって大きく変化する可能性があります.
    転送パラメータラベル
    パラメータラベルを渡す関数を使用して、次のように定義します.
    func 함수 이름 (전달인자 레이블: 파라미터 이름: 데이터 타입, 
    			전달인자 레이블: 파라미터 이름: 데이터 타입) -> 반환 타입 {
    	return 반환 값
    }
    💡 このとき伝達因子は何でしょうか.
    パラメータと伝達因子はまったく異なる.パラメータは定義された関数で使用される名前を示し、伝達パラメータは関数を呼び出すときに使用される名前を示します.
    ✔申パラメータ:関数内部で使用する名称
    ≪パラメータの渡す|Transfer Parameters|oem_src≫:関数の外部呼び出しで使用される名前
    ✔パラメータラベルを渡す:関数を定義する場合、パラメータと一緒に使用し、省略可能
    伝達パラメータを理解している場合は、伝達パラメータラベルを使用して、友人にメッセージを伝達する方法を作成します.
    func sendMessage(from myName: String, to name: String) -> String {
    	return "Hello, \(name)! I'm \(myName)"
    }
    
    sendMessage(from: "Hoojeong", to: "Jenny")
    Hello, Jenny! I'm Hoojeong
    関数を使用する場合、伝達パラメータラベルを使用すると、パラメータの役割をより容易に理解でき、コードの可読性が向上します.
    伝達因子ラベルを使用したくない場合は、와일드 카드を使用します.
    func sendMessage(_ myName: String, _ name: String) -> String {
    	return "Hello, \(name)! I'm \(myName)"
    }
    💡 ワイルドカードって何?
    SWIFTは、コード量を減らすために複数のモードを使用する.ワイルドカードはこれらのモードの1つであり、詳細は他のロケーションで説明されます.
    要するに、ワイルドカードは値をヘッジまたは無視するモードです.つまり、ワイルドカードがあれば、その位置に入る値を無視します!意味は.
    ✔ワイルドカード:ワイルドカードの位置を無視するすべての内容
    可変パラメータ
    パラメータの値が分からない場合は、可変パラメータを使用します.可変パラメータは0以上の値を受け入れることができ、パラメータ値は配列として使用できます.
    func sendMessage(myName: String, names: String...) -> String {
    	return "Hello, \(names)! I'm \(myName)"
    }
    
    sendMessage(myName: "Hoojeong", names: "Jenny", "Amy", "Json")
    Hello, ["Jenny", "Amy", "Json"]! I'm Hoojeong