जवाबों:
आप बिल्कुल is
एक switch
ब्लॉक में उपयोग कर सकते हैं । स्विफ्ट प्रोग्रामिंग लैंग्वेज में "टाइपिंग फॉर एनी एंड एनीऑबजेक्ट" देखें (हालांकि यह Any
पाठ्यक्रम तक सीमित नहीं है )। उनके पास एक व्यापक उदाहरण है:
for thing in things {
switch thing {
case 0 as Int:
println("zero as an Int")
case 0 as Double:
println("zero as a Double")
case let someInt as Int:
println("an integer value of \(someInt)")
case let someDouble as Double where someDouble > 0:
println("a positive double value of \(someDouble)")
// here it comes:
case is Double:
println("some other double value that I don't want to print")
case let someString as String:
println("a string value of \"\(someString)\"")
case let (x, y) as (Double, Double):
println("an (x, y) point at \(x), \(y)")
case let movie as Movie:
println("a movie called '\(movie.name)', dir. \(movie.director)")
default:
println("something else")
}
}
is
" - और फिर वह इसका उपयोग कभी नहीं करता है। X)
case is Double
जवाब में
उदाहरण के लिए "केस है - केस इन्ट, इज स्ट्रांग: " ऑपरेशन है, जहां समान मामलों के प्रकार के लिए एक ही गतिविधि को करने के लिए एक साथ कई मामलों का उपयोग किया जा सकता है। यहां "," प्रकार के मामले को अलग करना OR ऑपरेटर की तरह काम कर रहा है ।
switch value{
case is Int, is String:
if value is Int{
print("Integer::\(value)")
}else{
print("String::\(value)")
}
default:
print("\(value)")
}
if
संभवत: अपनी बात को प्रमाणित करने का सबसे अच्छा उदाहरण नहीं है।
value
कुछ है कि से एक हो सकता है Int
, Float
, Double
, और इलाज Float
और Double
उसी तरह।
मामले में आपके पास कोई मूल्य नहीं है, बस कोई वस्तु:
स्विफ्ट 4
func test(_ val:Any) {
switch val {
case is NSString:
print("it is NSString")
case is String:
print("it is a String")
case is Int:
print("it is int")
default:
print(val)
}
}
let str: NSString = "some nsstring value"
let i:Int=1
test(str)
// it is NSString
test(i)
// it is int
मुझे यह वाक्य रचना पसंद है:
switch thing {
case _ as Int: print("thing is Int")
case _ as Double: print("thing is Double")
}
चूंकि यह आपको कार्यक्षमता को तेजी से आगे बढ़ाने की संभावना देता है, जैसे:
switch thing {
case let myInt as Int: print("\(myInt) is Int")
case _ as Double: print("thing is Double")
}
thing
किसी भी एस में स्विच ` का उपयोग नहीं कर रहे हैंcase
, यहाँ उपयोग करने से क्या होगाthing
? मैं इसे देखने में असफल रहा। धन्यवाद।