[関数]Swiftを書くための再入門4

Swift再入門の4記事目です!

一回目はこちら、二回目はこちら、三回目はこちら

今回はSwiftの関数に着目して書いていきます!

 

外部引数名の省略

Swiftの関数には外部引数を定義します。

Objective-Cにも外部引数は有りましたが、引数が何を示しているのかがわかりやすい特徴があります。

下記のように第一引数の外部引数は省略できます。

関数名で第一引数が何であるかわかりやすい名前を付ける必要があります。

もしくは、第一引数の外部引数名を省略せずに書くことです。

説明が長くなりましたが、実は第二引数以降も外部引数名を省略できます

ここでは例として2つの和を返すsum関数を示します。

第二引数以降は 外部引数名にアンダースコアを指定することで省略することが出来ます。

このアンダースコアのことはワイルドカードと呼ばれます。

Xcodeで使っていない変数を定義するとワイルドカードに置き換えるようにwarningが出たことがある人もいるのではないでしょうか。

 

inout引数

Swiftでの関数無いでは引数は基本的には値渡しです。なので関数内で変化させることが出来ません。

引数にinout引数を定義すると値を変更することが出来ます。

上記の例ではstring型の引数を関数内で変更しています。

注目点はinputで引数を宣言しているところ、呼び出しには&を用いていることです。

Swiftにはポインタの概念はありませんが、C言語のポインタの参照渡しのように書くことが出来ます。

 

@warn_unused_result

先ほどの説明でワイルドカードを用いて引数名が省略できることを解説しました。

この例では関数の宣言に @warn_unused_resultという属性を追加しています。

この例では、warningが表示されます。

返り値が何にも使われていない時にコンパイル時にエラーを吐いてくれる属性をつけることが出来ます。

明らかに関数の返り値を使う必要のある関数にはこの属性をつけておくと間違いを減らすことが出来るかと思います。

 

 

 

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">