Swift転職なら=>【LevTech】
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > 関数引数の参照渡し

関数引数の参照渡し Inout

Swiftで参照だけを渡す(呼び出し元の変数の値を変更する)にはどうしたらよいのかな〜と調査していると、関数引数に参照渡しする方法で inoutという言葉があることを知りました。紹介いたします。

参考:in-outパラメータに関して
参考:「値、参照」の「値渡し、参照渡し」の違いについて Swift でお勉強してみる
参考:Swift/iOS: How to use inout parameters in functions with AnyObject/Any or Pointers

やってみた

testIntを関数内で+1する場合影響受ける関数とそうでない関数を比較しています。


import UIKit

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        var testInt = 0;
        println(testInt);//結果ー>0
        sanshouWatashi_NO(testInt);
        println(testInt);//結果ー>0
        sanshouWatashi_YES(&testInt);
        println(testInt);//結果ー>1
    }
    
    //参照渡しではない通常(呼び出し元影響受けない)
    func sanshouWatashi_NO(var param1:Int){
        param1 += 1;
    }
    
    //参照渡し(呼び出し元影響受ける)
    func sanshouWatashi_YES(inout param1:Int){
        param1 += 1;
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

inoutなんて知らなかったです。ただinoutっていう言葉は直感的でわかりやすい。

まとめ

昔プログラムを覚えたてのころ、この参照渡しって概念がなんともスッと理解できなかったことを思い出しました。。。

↓こんな記事もありますよ!

CoreTextでTextViewの一文字の向きを変える(#2)

さて、サンプルそのままだと面白くないので、本日6月から開始する自転車規制強化 にのっかったサンプル<自転車の転だけ横に曲げる>にしてみます。(14歳以上が対象。自転車のイヤホン装着や片手走行、 酔っ払い運転、歩道運転、片手スマホ、、、、今まで誰もがやり通してきたことが「逮捕や補導の対象」となるようです。赤切符もきられる ようになるとのことで、自転車に酔っ払ってのって自動車の免停なんかになりかね無いので注意です)

Facebook SDKを試してみる(調査)

先日ひょんなところからFacebookSDKの事を教えていただき、興味が足裏からフツフツと湧き出てまいりましたので本日調査してみます。

NSURLConnectionでHTTPやFTPアクセス

今回はiPhoneとサーバ間でHTTPやFTPプロトコル通信を行うNSURLConnectionの説明
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!