2017-01-27 7 views
0

nouveau à rapide, apprendre d'un livre. Ils utilisent suivant dans un exemple:Swift Notation de mesure pour UnitType

var stepsTaken : Measurement<UnitLength> 

donc ce que dit stepsTaken est une variable de type Measurement<UnitLength>

je levai les yeux dans la mesure développeur d'Apple docs et aussi UnitType. Ce que je ne comprends pas (et ne trouve pas d'explication pour) est pourquoi le <>? Je comprends que vous devez donner un UnitType à une mesure, mais pourquoi mettre cela entre < et>? Est-ce une notation spéciale Swift? J'ai regardé Structures dans Swift mais je n'y vois pas de notation ...

J'ai aussi regardé la vidéo de la session 238 de la WWDC 2016 où ils parlent de Mesures. Ils utilisent la même notation mais aucune explication.

+0

http://stackoverflow.com/documentation/swift/774/generics/ 5623/the-basics-of-generics # t = 201701271146131807228 – kennytm

+0

Sa "notation", pas "notification". – luk2302

+1

C'est une notation pour les génériques. Vous pouvez lire à ce sujet dans le [Livre Swift] (https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Generics.html) –

Répondre

0

Lorsque nous créons une mesure, nous lui donnons une valeur et une unité. Cette unité devient une contrainte générique sur la mesure.

Par exemple, Triathlon • un 25 km en vélo • nager 3 mile nautique • un demi-marathon course

Voyons voir comment nous pouvons créer des mesures représentant ces longueurs

let cycleRide = Measurement(value: 25, unit: UnitLength.kilometers) 
let swim = Measurement(value: 3, unit: UnitLength.nauticalMiles) 
let marathon = Measurement(value: 26, unit: UnitLength.miles) + Measurement(value: 385, unit: UnitLength.yards) 

Le unité pour le marathon est m, qui est l'unité de base pour UnitLength. C'est parce que nous avons ajouté deux distances de différentes instances UnitLength pour cela.

marathon.unit.symbol 
swim.unit.symbol 
cycleRide.unit.symbol 

Trouver un demi-marathon:

let run = marathon/2 

distance événement Total:

let triathlon = cycleRide + swim + run