i henhold til den hurtige officielle dokumentation

“adgangskontrol begrænser adgangen til dele af din kode fra kode i andre kildefiler og moduler. Denne funktion giver dig mulighed for at skjule implementeringsoplysningerne for din kode og angive en foretrukken grænseflade, gennem hvilken koden kan tilgås og bruges.”

hurtig 5 har fem adgangskontrol. De er åbne, offentlige, interne, fileprivate og private. Disse adgangskontroller er defineret ud fra anvendelserne i modulet og kildefilen. I denne vejledning lærer vi hvad, hvor og hvordan man bruger adgangskontrol hurtigt.

åben (mindre restriktiv)

alt definerer med åben kan tilgås inden for eller uden modulet. open access level enheder kan tilgås fra hvor som helst. Det betyder, at en åben variabel kan få adgang, en åben funktion kan tilsidesætte, og åben klasse kan være underklasse inde i et modul og uden for et modul ved at importere dette modul.

et eksempel er klassen “Uitablevisecelle” i UIKit-rammen. Vi kan underklassere enhver klasse som en Uitablevisecell-klasse ved at importere UIKit-modulet. Hvis du ser definitionen af” Uitablevisecelle”, vil du se åben adgangskontrol før klassedefinitionen inde i UIKit-modulet. Derfor kan vi underklassificere enhver klasse som en Uitablevisecell-klasse ved at importere UIKit.

@available(iOS 2.0, *)open class UITableViewCell : UIView, NSCoding, UIGestureRecognizerDelegate { }

offentlig (restriktiv end åben)

ligesom åben adgang kan offentlige enheder også tilgås inden for eller uden for et modul. Men der er en stor forskel mellem åben og offentlig.

offentlig klasse kan ikke underklassificeres, og offentlig metode kan ikke tilsidesættes uden for det definerede modul. Skal være nødt til at underklasse eller tilsidesætte inden for det modul, hvor de definerede.

Tjek eksemplet nedenfor

//module 1open class X{}
open func bar(){}public class Y{}
public func foo(){}//module 2class A: X{} // success
override func bar(){} // successclass B: Y{} //error
override func foo(){} // error

intern ( adgangskontrol på modulniveau)

“intern” gør det muligt at bruge enheder hvor som helst inde i det definerede modul. “intern” er standardadgangsniveauet. Normalt er et modul en ramme eller app, der kan bruges som en enkelt enhed.

inde i et mål (modul) er alle enheder som standard interne (hvis eksplicit ikke definerede nogen adgangskontrol). Det er defineret på den måde, at alt inde i modulet kan tilgås af alle fra hvor som helst inden for dette modul.

fileprivate( adgangskontrol på filniveau)

fileprivate enheder kan kun være tilgængelige i en hurtig fil. En hurtig fil kan have flere klasser eller strukturer. Alle fil private enheder inde i en hurtig fil kan tilgås af alle de klasser eller strukturer i denne fil. Uden dem kan andre klasser uden for denne fil ikke få adgang til dem. Det skjuler generelt implementeringen fra andre kildefiler i modulet.

//** ViewController.swift **//class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad() let a = A()
a.x()
a.z() //error let b = B()
b.Y() // error
}
}class A {fileprivate func x(){
print("Inside ViewController file")
}
}
//** SecondViewController.swift **//class B{fileprivate func Y(){
print("Outside ViewController file")
}
}extension A{
fileprivate func Z(){
print("Outside ViewController file, extension of A")
}
}

privat( adgangskontrol på klasseniveau)

privat er den mest anvendte og mest begrænsede adgangskontrol. De private enheder kan kun få adgang inden for den klasse (inklusive udvidelse), de erklærede. Det bruges generelt til at skjule den interne implementering eller funktionalitet uden for en bestemt klasse.

// ** ViewController.swift **//class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
x()
let a = A()
a.Y() // error
}
}extension ViewController{
private func x(){
print("Inside x")
}
}class A {
private func Y(){
print("Inside Y")
}
}

forskel mellem hurtig adgangskontrol

nu vil vi se forskellen mellem disse adgangsmodifikatorer baseret på forskellige parametre som en tabelform

tillykke, jeg tror nu, du har en ide om adgangskontrol i det hurtige programmeringssprog. Du finder en kort diskussion af dem om hurtig officiel dokumentation.

hvis du fandt denne artikel nyttig, så del og giv nogle klapper
tjek mine andre artikler på medium og forbind mig på LinkedIn.

Tak fordi du læste & glad kodningsløn

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.