Как разделить UnitMass в Swift? - PullRequest
       31

Как разделить UnitMass в Swift?

1 голос
/ 11 апреля 2019

Я пытаюсь создать простое приложение, которое позволяет пользователю вводить свой вес, вводить свой целевой вес и вводить, сколько они планируют терять каждую неделю.

Я хочу, чтобы он вернулся, говоря, например (Вы весите 12 камней и 2 фунта, вы хотите весить 10 камней и 0 фунтов, если вы теряете 2 фунта в неделю, вы достигнете своей цели через 15 недель).

(Обратите внимание, я очень новичок в Swift, я больше привык к Python. Я надеюсь создать калькулятор на основе заданных уравнений).

Я попытался начать со значений в виде целых и двойных чисел, а затем безуспешно преобразовать их в UnitMass

import UIKit
import Foundation

// enter your current weight
var myCurrentWeight = Measurement(value:12, unit: UnitMass.stones)

//enter your goal weight
var myGoalWeight = Measurement(value:10, unit: UnitMass.stones)

//enter how much you plan to lose a week
var weightLoss = Measurement(value:2, unit: UnitMass.pounds)

// find the difference inbetween the weights (Example: 12st - 10st = 2st)
let weightDifference = myCurrentWeight - myGoalWeight

//find out how many weightLoss's fit into the difference, this
let numOfWeeks = weightDifference / weightLoss

// print the number of weeks it takes to reach your goal
print(numOfWeeks)

Ожидается печать: 28 Я получаю ошибку: «Двоичный оператор» / «не может быть применен к двум операндам измерения»

1 Ответ

2 голосов
/ 12 апреля 2019

Вы можете использовать тип измерения для преобразования между значениями, например:

import Foundation

// this is a Double
var myCurrentWeight = 12.0

// this is a Double
var myGoalWeight = 10.0

// Convert Double value `2` as pounds to Double value as stones
var weightLoss = Measurement(value:2, unit: UnitMass.pounds).converted(to: UnitMass.stones).value

// find the difference inbetween the weights (Example: 12st - 10st = 2st)
let weightDifference = myCurrentWeight - myGoalWeight

//find out how many weightLoss's fit into the difference, this
let numOfWeeks = weightDifference / weightLoss

// print the number of weeks it takes to reach your goal
print(numOfWeeks)

Это определяет значение и его единицу: Measurement(value:2, unit: UnitMass.pounds). Который вы можете затем преобразовать в другую единицу .converted(to: UnitMass.stones)

Используйте Measurement для преобразования значений в различных единицах и для возможности расчета с ними.

Используйте .value на вашем Measurement экземпляре, чтобы получить его Double представление, используйте это для вычисления.

...