Swiftのアクセスコントロールを試してみた
今話題の アクセスコントロール(public/pirvate)を試してみた。
開発環境は、XCode6-Beta4 (2014/7/23時点)
最初、Playgroundにて、サンプルコードを記述してみたが、privateなプロパティやメソッドに、みんなアクセスできてしまった。
ということで、実際、UIViewControllerを使用して自作クラスの、privateなプロパティやメソッドにアクセスしてみた。
DeclarationSample
import Foundation
class MyDeclaration{
private var valPrivate:String = "Private Value"
public var valPublic:String = "Public Value"
private func myPrivateFunc(){
NSLog("Private Function executed!!")
}
public func myPublicFunc(){
NSLog("Public Function executed!!")
}
}
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
var myClass:MyDeclaration = MyDeclaration()
//Public Function
myClass.myPublicFunc()
//Set Public Property
myClass.valPublic = "Set New Public Value!!"
//Get Public Property
NSLog("myClass.valPublic:%@", myClass.valPublic)
//Private Function
//myClass.myPrivateFunc()
//Set Private Property
//myClass.valPrivate = "Set New Private Value!!"
//Get Private Property
//NSLog("myClass.valPrivate:%@", myClass.valPrivate)
}
}
以下のように、仕様の通りに外部からアクセスできないので、事前にエラーとなる。
ちなみに、当然、同一クラス内からはprivate関数はコール可能。
class MyDeclaration{
private var valPrivate:String = "Private Value"
public var valPublic:String = "Public Value"
private func myPrivateFunc(){
NSLog("Private Function executed!!")
}
public func myPublicFunc(){
//同一クラス内からはコール可能
myPrivateFunc()
}
}
Java出身の自分としては、C言語系のヘッダファイル等によるスコープ管理は非常に難解であったので、とてもわかりやすくなって嬉しい。
ちなみに、XCode6-Beta4になってからもコードアシスト機能が、更に実用的になってきて素晴らしい。今後、SwiftもXcodeも進化していくことを期待している。
Lovely!!
Author And Source
この問題について(Swiftのアクセスコントロールを試してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/tajihiro/items/ede3e9971908d033cd68著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .