When I create a function in Swift, can I use "get" and "set" words? For instance can I declare a function as func getAuthorizedUsers()
instead of func authorizedUsers()
? In ObjectiveC get and set keywords are not suggested to use when declaring functions. How about in Swift?
Also, when declaring properties can I use "is" keyword? For instance:
public var isAuthorized: Bool {
get {
return true
}
}
I have read Swift naming convention documents but I couldn't find the answer of my question. Thank you.
Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized. Except for variables, all instance, class, and class constants are in mixed case with a lowercase first letter. Internal words start with capital letters.
A getter in Swift allows access to a property, and a setter allows a property to be set.
Method names should answer the question- What does this method do? If you cannot find a good name for a method, think about whether it has a clear intent. Because methods are the means of taking action, the design guidelines require that method names be verbs or verb phrases.
The rules are all outlined here.
For get
, that clearly violates the "Omit needless words" rule. If a method returns something, the call site will know that it is used to get some value. You don't need to repeat that idea. You can consider turning this into a computed property if no parameters are required.
For set
, it might be appropriate sometimes. If your method only need one parameter and there is a corresponding getter,
func getFoo() -> Int {
...
}
func setFoo(_ foo: Int) {
...
}
That's a pretty good sign that this can be turned into a computed property:
var foo: Int {
get { ... }
set { ... }
}
A good example where it is appropriate to have set
is the UIButton.setTitle
method. It takes in two parameters, so a computed property wouldn't work.
For is
, that clearly conforms to the rule "Uses of Boolean methods and properties should read as assertions about the receiver". So yes, you should use it for boolean members.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With