# メソッド
メソッドとは、型に紐づいた関数のことです。Swiftでは、クラス、構造体、列挙型はメソッドを定義することができます。
# メソッドの定義方法
メソッドの定義は、型の内部で、func
キーワードを使用して定義することができます。
struct MyStruct {
func メソッド名(引数) -> 戻り値の型 {
// 処理の記述
}
}
次の例では、構造体に say
メソッドを定義しています。引数と返り値にString型を許容しています。
struct Person {
func say(text: String) -> Void {
print(text)
}
}
let person1 = Person()
person1.say(text: "Hello") // Hello
# インスタンスメソッド
インスタンスメソッドとは、型のインスタンスに紐づくメソッドです。インスタンス化することによって使用することができます。
struct Person {
func hello() -> Void {
print("Hello")
}
}
let person1 = Person()
person1.hello() // Hello
インスタンス化せずに、使用すると、コンパイラはエラーを出力します。
struct Person {
func hello() -> Void {
print("Hello")
}
}
Person.hello()
/* 実行結果 */
// error: instance member 'hello' cannot be used on type 'Person'; did you mean to use a value of this type instead?
// Person.hello()
# タイプメソッド
タイプメソッドとは、型に紐づくメソッドのことです。インスタンスが異なっても共通の処理をしたいときに使用します。
タイプメソッドは、先頭に static
キーワードをつけます。
struct Person {
static func hello() -> Void {
print("Hello")
}
}
Person.hello() // Hello