abcdefg12345
Оригинален плакат- 10 юли 2013 г
- 21 октомври 2017 г
бърз 4
Код: |_+_|
използвам низ с променлива, защото ми трябва да е низ, за да мога да го форматирам по-късно, дефинирах го като
Код: |_+_|
abcdefg12345
Оригинален плакат- 10 юли 2013 г
- 21 октомври 2017 г
Код: |_+_|
0002378
Суспендиран
- 28 май 2017 г
- 23 октомври 2017 г
И докато опциите имат своите предимства, те също ме карат да искам да разбия компютъра си в горните ръбове на контейнера за боклук.
Въпреки това, където Суифт наистина рита задника е в отдела за затваряне... о, да! Java също ги има сега, но...
И, разбира се, фактът, че Swift е по-малко строг в декларирането на типове и тези досадни точки и запетая... страхотно!
Реакции:abcdefg12345
0002378
Суспендиран
- 28 май 2017 г
- 24 октомври 2017 г
Нямате нужда от нова променлива. Можете просто да добавите '!' към вашия Double(string) и ще работи.
Предполагам, че сгреших, че Суифт е глупав в този случай. Но съм срещал много случаи на подобни оплаквания от компилатора (не мога да сравня два различни числови типа).
Грийн
- 15 юли 2015 г
- Форт Уърт
- 24 октомври 2017 г
Или можете да използвате незадължително обвързване, за да разгънете стойността. Първо бих опитал един от тези методи, преди да използвам принудително разгръщане
gnasher729
Суспендиран
- 25 ноември 2005 г
- 24 октомври 2017 г
maculateConception каза: Мисля, че Swift, като език, понякога е доста смешен, особено. идващи от програмирането на Java. И вие дадохте един от най-добрите примери за това.Това е доста безсмислено. Проблемът е, че OP не знае за основна функция на Swift, която е незадължителна стойност. Конструкторът Double(String) очевидно може да се провали, ако низът не съдържа число. Ето защо Double (String) не дава и не може да произведе резултат от тип Double, а такъв от тип Double? , това е по избор Double. И незадължителен Double не може да се сравнява с Int.
Вашето 'решение' е наистина, наистина ужасно. ! означава „Сигурен съм, че това преобразуване ще успее. Ако не стане, моля, сринете приложението. нека d = двойно ('1234x')! просто ще се срине. Преднамерено. Защото не сте проверили за нула и беше нула.
Правилният начин е проверка за грешка. Например
ако нека d = Double (MyValue), d > 10 {
// MyValue съдържа число и числото е > 10.
} друго {
// MyValue не съдържа число или числото беше<= 10.
}
Ако смятате, че си струва да напишете код, който е безопасен и действително работи, тогава Swift е правилният език.
0002378
Суспендиран
- 28 май 2017 г
- 24 октомври 2017 г
gnasher729 каза: Това е доста безсмислено. Проблемът е, че OP не знае за основна функция на Swift, която е незадължителна стойност. Конструкторът Double(String) очевидно може да се провали, ако низът не съдържа число. Ето защо Double (String) не дава и не може да произведе резултат от тип Double, а такъв от тип Double? , това е по избор Double. И незадължителен Double не може да се сравнява с Int.
Бяхте ли тормозени в училище? Изглежда имаш доста ниско самочувствие, защото не можа да отговориш, без да ме нападнеш.
Това ще бъде първата ми и последна комуникация с вас. Предложение към вас - опитайте се да общувате по по-граждански начин и животът ще бъде страхотен. Пази се.
Грийн
- 15 юли 2015 г
- Форт Уърт
- 25 октомври 2017 г
gnasher729 каза: Правилният начин е проверка за грешка. Например
ако нека d = Double (MyValue), d > 10 {
// MyValue съдържа число и числото е > 10.
} друго {
// MyValue не съдържа число или числото беше<= 10.
}
Това е двусмислено - ами ако стойността е<= 10 should produce different results from the value being nil? To be fair, the OP's post is ambiguous as they were forcing the unwrap, meaning a nil value would crash. However in most business cases, a nil value would be handled differently (safely) from an insufficient value.
Много по-чист начин би бил:
Код: |_+_|
Въпреки че наистина мисля, че MyValue трябва да се съхранява като Double от самото начало и NumberFormatter, внедрен по-късно, за да се справи с каквото е необходимо форматиране. Това има много по-ниска когнитивна тежест за всеки, който в крайна сметка прочете кода.
gnasher729
Суспендиран
- 25 ноември 2005 г
- 26 октомври 2017 г
maculateConception каза: Бяхте ли тормозени в училище? Изглежда имаш доста ниско самочувствие, защото не можа да отговориш, без да ме нападнеш.
Това ще бъде първата ми и последна комуникация с вас. Предложение към вас - опитайте се да общувате по по-граждански начин и животът ще бъде страхотен. Пази се.
Е, не те нападнах. Нападнах публикацията ви, която показва, че знаете много малко за Swift, и включих една много опасна препоръка. С
SAIRUS
да се
- 21 август 2008 г
- 26 октомври 2017 г
вмъкване
- 14 април 2018 г
- 14 април 2018 г
1) '!' можете да посочите, че тази стойност ще бъде точно int, като добавите знака.
Код: |_+_| 2) Можете да посочите типа, когато дефинирате стойността.
Код: |_+_| ДА СЕ
atmenterprises
- 28 януари 2006 г
- 27 април 2018 г
ynstek каза: Swift, не съм сигурен, че стойността ти е точно int. Има две опции, за да се уверите.
1) '!' можете да посочите, че тази стойност ще бъде точно int, като добавите знака.
Код: |_+_| 2) Можете да посочите типа, когато дефинирате стойността.
Код: |_+_|
Мисля, че вашият пример №2 би се провалил, защото се опитвате да присвоите прехвърляне на низ към double към променлива Int. Освен това приемате, че MyValue не е нула, което може да причини грешка по време на изпълнение, ако е нула или не е числова.
Вашето примерно обяснение №1 също не е правилно. Удивителният знак не преобразува стойност в Int. Той разгръща стойността на незадължителна променлива. Във вашия пример ще се окажете с двойна стойност, а не с Int и само ако MyValue не е нула или нечислова стойност.
Популярни Публикации