Balbas Code

SwiftにおけるVoid型について

公開日: 2023-09-29 01:26:13

Swift言語において、Void型は「何も返さない」という意味を持つ型です。他の多くのプログラミング言語におけるvoidと同じ意味合いを持っています。


具体的には、関数やメソッドが何も返さない場合にその戻り値としてVoidを使用します。


 



以下はその例です:


func printMessage() -> Void {
print("Hello, World!")
}

 


 



ただし、Swiftでは戻り値がVoidの場合、その型を省略することができます。
したがって、上記の関数は以下のように書くこともできます:


func printMessage() {
print("Hello, World!")
}

 


 


 


Voidは、実際には空のタプルとして定義されています。つまり、Void()としても表現することができます。


したがって、次の2つの関数定義は等価です:


func function1() -> Void { }
func function2() -> () { }


しかし、Swiftプログラムの中で一般的に使用されるのは、Voidのキーワードまたは型を省略した形です。



クロージャのVoid


クロージャの文脈においても、Void型は省略することが多いです。


例えば、何も引数を取らず、何も返さないクロージャの型は() -> Voidと書けますが、多くの場面でこの型は省略されます。


以下にいくつかの例を示します:

1.Voidを使用したクロージャの型定義:


let myClosure: () -> Void = {
print("This is a closure.")
}

 



2.Voidを省略したクロージャの型定義:


let myClosure: () -> () = {
print("This is a closure.")
}



3.クロージャの型も完全に省略:


let myClosure = {
print("This is a closure.")
}

 


特にコールバックや非同期処理のコンテキストで、何も返さないクロージャを使う場面が多いため、Swiftのコードの中でよくVoidを見ることができるかと思います。しかし、確かにその多くの場面で、完全に型が省略されることも珍しくありません。