स्विफ्ट 1.2 (एक्सकोड 6.3) ने बूल वैल्यू के लिए xor '^' ऑपरेटर को हटा दिया?

2015-04-10 12 views
14

Xcode 6.3 पर यह नमूना कोड ...स्विफ्ट 1.2 (एक्सकोड 6.3) ने बूल वैल्यू के लिए xor '^' ऑपरेटर को हटा दिया?

var str1 = "" 
var str2 = "" 
if str1.isEmpty^str2.isEmpty { 
    // do something. 
} 

प्रदर्शित करता है निम्न त्रुटि।

'^' is unavailable: use the '!=' operator instead 

मुझे ऐप्पल दस्तावेज में विशिष्टता नहीं मिल रही है। क्या यह विनिर्देशन है (और मुझे इसे लम्बा करना होगा)?

+1

मैं http://swiftdoc.org/ में यह नहीं मिल सकता है न हेडर फाइल में है, तो शायद हाँ। –

+1

त्रुटि संदेश ने आपको बताया कि समस्या को कैसे ठीक किया जाए। – gnasher729

+0

हां। मुझे यह पता है। वर्तमान में रिलीज नोट्स का लिंक मृत लिंक है, इसलिए मैं जानना चाहता था कि यह एक विनिर्देशन परिवर्तन है या नहीं। –

उत्तर

10

यह स्पष्ट रूप से जानबूझकर है:

$ echo ':print_module Swift' | swift -deprecated-integrated-repl | fgrep "use the '!=' operator instead" 

शो:

@availability(*, unavailable, message="use the '!=' operator instead") func ^=(inout lhs: Bool, rhs: Bool) 
@availability(*, unavailable, message="use the '!=' operator instead") func ^(lhs: Bool, rhs: Bool) -> Bool 
22

मान लें कि आप लॉजिकल एक्सओआर का उपयोग करने की कोशिश कर रहे हैं, != आपके उद्देश्य को पूरा करना चाहिए। ^ थोड़ा सा XOR है। तो यह समझ में आता है कि ऐप्पल ने इसे मूर्ख मूल्यों के लिए हटा दिया।

+0

तो आप XOR को तीन बूलियन पर एक साथ कैसे लागू करते हैं? – jowie

+5

@jowie xor में एक ही समय में दो से अधिक तत्वों की कोई परिभाषा नहीं है, आप इसे कैसे काम करने की उम्मीद करेंगे? – Daniel

+3

@ जॉवी (ए! = बी)! = सी इसे करना चाहिए। –

संबंधित मुद्दे