54
49

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Swiftで学ぶ英文法: 現在分詞と過去分詞

Last updated at Posted at 2016-08-31

Objective-Cの時代から、コードを読んだり命名したりするときに、そこそこの英語力、英文法力を要求される場面が多いと思います。(かつてObjective-Cで学ぶ英文法というのを社内LT会で発表しました。)SwiftのAPI Design Guidelinesを読んでみて、一層英文法力の必要性を感じたので、自分の理解のためにも「Swiftで学ぶ英文法」というテーマで書いてみようと思います。

Swiftのメソッドにはインンスタンス自身に変更を加えるもの(mutating)と、自身には変更を加えずに新しいインスタンスを作って返すもの(nonmutating)が対になって存在するものがあります。その場合、演算が動詞で表されるならば、mutatingなメソッドに命令形を使い、nonmutatingなメソッドに過去分詞形(〜ed)または現在分詞系(〜ing)を使います。

例えば配列のソート sort() と、要素追加 append(_:) は以下のようになっています。

Mutating Nonmutating
x.sort() x.sorted()
x.append(y) x.appending(y)

では過去分詞と現在分詞の使い分けはどうすればいいかというと、動詞に直接目的語をとるかどうかで決まります。sortは直接目的語を取らないので過去分詞にしてsortedappendは引数yという直接目的語を取るので現在分詞にしてappendingとなります。

英文として読めるようにしてみるとこんな感じでしょうか。

x.sort()
// x, sort (yourself).
// x、自分をソートして。
x.sorted()
// x, (return your copy which is) sorted.
// x、ソートされた自分のコピーを返して。
x.append(y)
// x, append y (to yourself).
// x、自分にyを追加して。
x.appending(y)
// x, (return your copy) appending y.
// x、yを追加した自分のコピーを返して。
54
49
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
54
49

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?