引き続きSwiftを勉強中のLeeです。
[追記:2016/03/18]
class
以外は全て「値渡し」で
class
は「参照渡し」だそうです。
ご指摘ありがとうございます。
[追記:END]
今回はSwiftでメソッドが本当に「値渡し」になっているかを検証して
「参照渡し」はどうするのかを記したいと思います。
下記の様に書くと最後の「a」の部分で「5」のままです。
method1.swift
func f(var a: Int) ->Int {
a = 20
return a
}
var a = 5
f(a)
a // a = 5のまま
これをちゃんと「参照渡し」にしたい場合は「inout」に変更して「&」を変数の前につけてあげましょう!
method2.swift
func f(inout a: Int) ->Int {
a = 20
return a
}
var a = 5
f(&a)
a // a = 20になる
以上になります。
Swiftでそろそろアプリを作ってみたいですね!
余談ですが、今回XcodeのPlaygroundと言う機能で試しました!
Xcodeメニューバー->Window->Welcome to Xcodeをタップ->Get started with a playground
ビルドする必要がなくてSwiftを試すには持って来いのツールです!