Swiftの参照渡しでinoutを使う
Swiftの参照渡しでinoutを使う
Swift書いていたらinoutなるものが出てきて、なんだろうと調べたら参照渡しのようですね。
参照渡し obj-c -(void)say : (NSString **)str { *str = @"hey!"; }
NSString *saying = @"hello"; NSLog(@"%@",saying); // hello [self say:&saying]; NSLog(@"%@",saying); // 元の変数もhey!になってる
// 値渡し func test (var str: String) -> String { str = "hey" return str }
// 参照渡し func inoutTest (inout str:String) { str = "hey!" }
var saying = "hello" print(saying) // hello // 値渡し test(saying) // hey! // 元の変数は書き変わらない print(saying) // hello // 参照渡し inoutTest(&saying) // hey! // 元の変数も書き換わる print(saying) hey!