abcdefg12345
โปสเตอร์ต้นฉบับ- 10 ก.ค. 2556
- 21 ต.ค. 2017
สวิฟ 4
รหัส: |_+_|
ฉันใช้สตริงตัวแปรเพราะฉันต้องการให้มันเป็นสตริงเพื่อที่ฉันจะได้จัดรูปแบบได้ในภายหลัง ฉันกำหนดให้มันเป็น
รหัส: |_+_|
abcdefg12345
โปสเตอร์ต้นฉบับ- 10 ก.ค. 2556
- 21 ต.ค. 2017
รหัส: |_+_|
0002378
ถูกระงับ
- 28 พฤษภาคม 2017
- 23 ต.ค. 2017
และในขณะที่ทางเลือกมีประโยชน์ แต่ก็ยังทำให้ฉันต้องการทุบคอมพิวเตอร์ของฉันกับขอบด้านบนของถังขยะ
อย่างไรก็ตาม ที่สวิฟท์ห่วยจริงๆ อยู่ในแผนกปิด ... โอ้ ใช่ ! Java มีพวกเขาด้วย แต่ ...
และแน่นอนว่า Swift เข้มงวดน้อยกว่าในการประกาศประเภทและเซมิโคลอนที่น่ารำคาญเหล่านั้น ... ยอดเยี่ยม !
ปฏิกิริยา:abcdefg12345
0002378
ถูกระงับ
- 28 พฤษภาคม 2017
- 24 ต.ค. 2017
คุณไม่จำเป็นต้องมีตัวแปรใหม่ คุณสามารถเพิ่ม '!' ไปที่ Double(string) ของคุณและมันจะได้ผล
ฉันเดาว่าฉันคิดผิดที่ Swift โง่ในกรณีนี้ แต่ฉันได้พบหลายกรณีของการร้องเรียนคอมไพเลอร์ดังกล่าว (ไม่สามารถเปรียบเทียบตัวเลขสองประเภทที่แตกต่างกัน)
กรีน
- 15 ก.ค. 2558
- ฟอร์ตเวิร์ธ
- 24 ต.ค. 2017
หรือคุณสามารถใช้การผูกที่เป็นทางเลือกเพื่อแกะค่า ฉันจะลองวิธีใดวิธีหนึ่งเหล่านี้ก่อนใช้แรงแกะกล่อง
gnasher729
ถูกระงับ
- 25 พ.ย. 2548
- 24 ต.ค. 2017
maculateConception กล่าวว่า: ฉันคิดว่า Swift ในฐานะภาษานั้นค่อนข้างน่าหัวเราะในบางครั้งโดยเฉพาะ มาจากการเขียนโปรแกรมจาวา และคุณได้ยกตัวอย่างตัวอย่างที่ดีที่สุดอย่างหนึ่งของสิ่งนั้นนั่นค่อนข้างไร้สาระ ปัญหาคือ OP ไม่รู้เกี่ยวกับคุณสมบัติพื้นฐานของ Swift ซึ่งเป็นค่าทางเลือก คอนสตรัคเตอร์ Double(String) อาจล้มเหลวอย่างเห็นได้ชัดหาก String ไม่มีตัวเลข นั่นเป็นสาเหตุที่ Double (String) ไม่ได้และไม่สามารถสร้างผลลัพธ์ของประเภท Double แต่หนึ่งในประเภท Double? ซึ่งเป็นตัวเลือกเสริม และตัวเลือก Double นั้นไม่สามารถเปรียบเทียบกับ Int ได้
'วิธีแก้ปัญหา' ของคุณแย่มากจริงๆ NS ! หมายถึง 'ฉันแน่ใจว่าการแปลงนี้จะสำเร็จ หากไม่เป็นเช่นนั้น โปรดทำให้แอปขัดข้อง' ให้ d = สองเท่า ('1234x')! ก็จะพัง อย่างตั้งใจ เพราะคุณไม่ได้ตรวจหาศูนย์ และมันก็เป็นศูนย์
วิธีที่ถูกต้องคือการตรวจสอบข้อผิดพลาด ตัวอย่างเช่น
ถ้าให้ d = สองเท่า (MyValue), d > 10 {
// MyValue มีตัวเลข และตัวเลขคือ > 10
} อื่น {
// MyValue ไม่มีตัวเลขหรือตัวเลขเดิมคือ<= 10.
}
หากคุณคิดว่ามันคุ้มค่าที่จะเขียนโค้ดที่ปลอดภัยและใช้งานได้จริง Swift คือภาษาที่เหมาะสม
0002378
ถูกระงับ
- 28 พฤษภาคม 2017
- 24 ต.ค. 2017
gnasher729 กล่าวว่า: นั่นค่อนข้างจะไร้สาระ ปัญหาคือ OP ไม่รู้เกี่ยวกับคุณสมบัติพื้นฐานของ Swift ซึ่งเป็นค่าทางเลือก คอนสตรัคเตอร์ Double(String) อาจล้มเหลวอย่างเห็นได้ชัดหาก String ไม่มีตัวเลข นั่นเป็นสาเหตุที่ Double (String) ไม่ได้และไม่สามารถสร้างผลลัพธ์ของประเภท Double แต่หนึ่งในประเภท Double? ซึ่งเป็นตัวเลือกเสริม และตัวเลือก Double นั้นไม่สามารถเปรียบเทียบกับ Int ได้
คุณถูกรังแกที่โรงเรียนหรือไม่? คุณดูมีความนับถือตนเองค่อนข้างต่ำเพราะคุณไม่สามารถตอบสนองโดยไม่โจมตีฉัน
นี่จะเป็นการสื่อสารครั้งแรกและครั้งสุดท้ายของฉันกับคุณ คำแนะนำสำหรับคุณ - ลองสื่อสารอย่างสุภาพกว่านี้แล้วชีวิตจะดีมาก ดูแล.
กรีน
- 15 ก.ค. 2558
- ฟอร์ตเวิร์ธ
- 25 ต.ค. 2017
gnasher729 กล่าวว่า: วิธีที่ถูกต้องคือการตรวจสอบข้อผิดพลาด ตัวอย่างเช่น
ถ้าให้ d = สองเท่า (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 พ.ย. 2548
- 26 ต.ค. 2017
maculateConception กล่าวว่า: คุณถูกรังแกที่โรงเรียนหรือไม่ คุณดูมีความนับถือตนเองค่อนข้างต่ำเพราะคุณไม่สามารถตอบสนองโดยไม่โจมตีฉัน
นี่จะเป็นการสื่อสารครั้งแรกและครั้งสุดท้ายของฉันกับคุณ คำแนะนำสำหรับคุณ - ลองสื่อสารอย่างสุภาพกว่านี้แล้วชีวิตจะดีมาก ดูแล.
ฉันไม่ได้โจมตีคุณ ฉันโจมตีโพสต์ของคุณ ซึ่งแสดงให้เห็นว่าคุณรู้จัก Swift น้อยมาก และรวมคำแนะนำที่อันตรายมากไว้ด้วย NS
ไซรัส
ถึง
- 21 ส.ค. 2551
- 26 ต.ค. 2017
แทรก
- 14 เม.ย. 2018
- 14 เม.ย. 2018
1) '!' คุณสามารถระบุได้ว่าค่านี้จะเป็นค่าที่แน่นอนโดยการเพิ่มเครื่องหมาย
รหัส: |_+_| 2) คุณสามารถระบุประเภทเมื่อกำหนดค่า
รหัส: |_+_| ถึง
atmenterprises
- 28 ม.ค. 2549
- 27 เม.ย. 2018
ynstek กล่าวว่า Swift ไม่แน่ใจว่าคุณค่าของคุณนั้นตรงกันทุกประการ มีสองตัวเลือกเพื่อให้แน่ใจว่า
1) '!' คุณสามารถระบุได้ว่าค่านี้จะเป็นค่าที่แน่นอนโดยการเพิ่มเครื่องหมาย
รหัส: |_+_| 2) คุณสามารถระบุประเภทเมื่อกำหนดค่า
รหัส: |_+_|
ฉันคิดว่าตัวอย่าง # 2 ของคุณจะล้มเหลวเพราะคุณกำลังพยายามกำหนดสตริงที่ส่งเป็นสองเท่าให้กับตัวแปร Int นอกจากนี้ คุณกำลังถือว่า MyValue ไม่เป็นศูนย์ ซึ่งอาจทำให้เกิดข้อผิดพลาดรันไทม์ได้หากเป็นศูนย์หรือไม่ใช่ตัวเลข
คำอธิบายตัวอย่าง #1 ของคุณก็ไม่ถูกต้องเช่นกัน เครื่องหมายอัศเจรีย์ไม่ได้แปลงค่าเป็น Int มันแกะค่าของตัวแปรทางเลือก ในตัวอย่างของคุณ คุณจะลงเอยด้วยค่า Double ไม่ใช่ Int และเฉพาะในกรณีที่ MyValue ไม่เป็นศูนย์หรือค่าที่ไม่ใช่ตัวเลข
โพสต์ยอดนิยม