- Swift 4 Programming Cookbook
- Keith Moon
- 210字
- 2021-07-08 10:21:31
There's more...
Accessing a tuple's components via a number is not ideal as we have to remember the order of the tuple members to ensure that we are accessing the correct one; this is even more confusing when the members are of the same type. To provide some context, we can add labels to the tuple members to identify them when they are accessed. Tuple labels are defined in a similar way to parameter labels, preceding the type and separated by a : . Let's add labels to both the tuple declaration and the tuple construction, and when accessed:
func normalisedStarRating(forRating rating: Float,
ofPossibleTotal total: Float)
-> (starRating: Int, displayString: String) {
let fraction = rating / total
let ratingOutOf5 = fraction * 5
let roundedRating = round(ratingOutOf5) // Rounds to the nearest integer.
let numberOfStars = Int(roundedRating) // Turns a Float into an Int
let ratingString = "\(numberOfStars) Star Movie"
return (starRating: numberOfStars, displayString: ratingString)
}
let ratingValueAndDisplayString = normalisedStarRating(forRating: 5, ofPossibleTotal: 10)
let ratingValue = ratingValueAndDisplayString.starRating
print(ratingValue) // 3 - Use to show the right number of stars
let ratingString = ratingValueAndDisplayString.displayString
print(ratingString) // "3 Stars" - Use to put in the label
Now, at the point of access, we can be sure that we have the right tuple member.
推薦閱讀
- Python自動化運維快速入門
- 基于Java技術的Web應用開發(fā)
- 基于免疫進化的算法及應用研究
- 區(qū)塊鏈:以太坊DApp開發(fā)實戰(zhàn)
- C語言程序設計
- Python算法指南:程序員經(jīng)典算法分析與實現(xiàn)
- Swift 4 Protocol-Oriented Programming(Third Edition)
- 零基礎學HTML+CSS第2版
- Mastering Embedded Linux Programming
- C/C++代碼調(diào)試的藝術(第2版)
- HikariCP數(shù)據(jù)庫連接池實戰(zhàn)
- JavaScript Unit Testing
- Jakarta EE Cookbook
- Learning Ionic(Second Edition)
- Azure for Architects