diff options
author | hamidra <hamid.alipour@live.com> | 2019-11-01 20:49:53 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-01 20:49:53 -0700 |
commit | 9c18774c349cbb0821f59f77c6fff3908139bff7 (patch) | |
tree | 2450cc6137d790d0638d9c1128800afe9e5b32ad | |
parent | a4006483feb4c80cbac68856eadbc83c694f7050 (diff) |
add downcast to the tutorial
-rw-r--r-- | swift.html.markdown | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/swift.html.markdown b/swift.html.markdown index 1f9fe897..8582131a 100644 --- a/swift.html.markdown +++ b/swift.html.markdown @@ -692,6 +692,11 @@ print(mySquare.sideLength) // 4 // cast instance let aShape = mySquare as Shape +// downcast instance: +// Because downcasting can fail, the result can be an optional (as?) or an implicitly unwrpped optional (as!). +let anOptionalSquare = aShape as? Square // This will return nil if aShape is not a Square +let aSquare = aShape as! Square // This will throw a runtime error if aShape is not a Square + // compare instances, not the same as == which compares objects (equal to) if mySquare === mySquare { print("Yep, it's mySquare") |