文档章节

[swift]-可选类型使用

XJDomain
 XJDomain
发布于 2016/08/01 10:34
字数 426
阅读 10
收藏 0

1:在swift中,nil也是一种特殊类型,字符串在初始化的时候是不能赋值为nil,但是字符串在开发过程中赋值为nil是在所难免的,所以苹果推出了可选类型

2:在swift中有规定:对象中的任意属性创建对象的时候,都必须有明确的初始化值

 

3:可选类型两种定义方式

  >常用方式

var name1 : Optional<String> = nil

  >常用方式

var name2 : String? = nil

 

 

4:可选类型赋值

// 给可选类型赋值
name1 = "abc"
name2 = "ABC"
print(name1)
print(name2)

 

 

5:取出可选类型的值

  > 1: 可选类型!  ---->解包就是取值

  > 2: 注意:强制解包如果可选类型为nil,就会崩溃

  > 3: 建议:在强制解包之前,对可选类型判断是否为nil

if name1 != nil {
    print(name1!)
}

 

6:可选绑定

 > 1:可选绑定就是开发过程中常用的取出可选类型的值的写法

if name1 != nil {
    print(name1!)
    print(name1!)
    print(name1!)
    print(name1!)
    print(name1!)
    print(name1!)
    print(name1!)
}

> 2:如果按照上面多次打印,每次打印都需要重新解包,很麻烦,所以推出了可选绑定

 

> 3:常用写法:

// 常用写法
if let name1 = name1 {
    print(name1)
    print(name1)
    print(name1)
    print(name1)
    print(name1)
}

说明:上面常用写法语句做了两步操作:判断name1是否有值

       > 1: 如果name1没有值,直接不执行{}里面的语句

       > 2: 如果name1有值,系统会自动将name1强制解包,并且将强制解包的结果直接赋值给name1

 

意见反馈邮件:1415429879@qq.com
欢迎你们的阅读和赞赏、谢谢!

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
XJDomain
粉丝 15
博文 112
码字总数 44060
作品 0
嘉定
高级程序员
Swift 4.0 基础学习总结(一)

Swift简介 作者:Chris Lattner Swift 2010年7月开始设计,1年时间完成基本架构,经历4年开发期于WWDC 2014 苹果2014年开发者大会发布,用于撰写OS X和iOS应用程序。 特点: 语法简单,代码简...

xx_cc
2017/11/20
0
0
Swift - 变量、常量、可选项、字面量

Swift变量 变量是一种使用方便的占位符,用于引用计算机内存地址。 Swift每个变量都指定了特定的类型,该类型决定了变量占用内存的大小,不同的数据类型也可以决定可以存储值的范围。 上一篇...

Albert_Lee
2017/11/15
0
0
10-Swift中的可选类型

swift中的可选类型 注意: 可选类型时swift中非常难理解的一个知识点 暂时先了解,多利用Xcode的提示来使用 随着学习的深入,慢慢理解其中的原理和好处 概念: 在OC开发中,如果一个变量暂停不使用...

不孤独的美食家
2016/08/08
9
0
iOS开发系列--Swift 3.0

概述 从写第一篇Swift文章的时候到现在Swift已经从1.2发展到了今天的3.0,这期间由于Swift目前还在发展阶段并不能向下兼容,因此第一篇文章中的部分代码在当前的Xcode环境中已经无法运行。在...

jianxin160
2016/06/17
0
0
从 OC 到 Swift 的快速入门与专业实践

只会介绍与 OC 有明显区别的地方,不会介绍 OC 中没有的,比如元组。当前总结也只是蜻蜓点水而已,但是有 OC 的基础,看这些已经足够。 一、数据 Swift 是类型安全的语言: Swift 必须明确数...

CoderHG
08/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

kernel version does not match DSO version

错误信息: kernel version 384.11 does not match DSO version 384.130.0 原因是: cuda driver版本太低,不匹配DSO 简单有效的修复方法,升级nvidia driver, 步骤如下: 1. google seach ...

刘小米
今天
0
0
maven坐标和依赖

一、maven坐标详解 <groupId>com.fgt.club</groupId><artifactId>club-common-service-facade</artifactId><version>3.0.0</version><packaging>jar</packaging> maven的坐标元素说......

老韭菜
今天
1
0
springmvc-servlet.xml配置表功能解释

问:<?xml version="1.0" encoding="UTF-8" ?> 答: xml version="1.0"表示是此xml文件的版本是1.0 encoding="UTF-8"表示此文件的编码方式是UTF-8 问:<!DOCTYPE beans PUBLIC "-//SPRING//......

隐士族隐逸
今天
1
0
基于TP5的微信的公众号获取登录用户信息

之前讲过微信的公众号自动登录的菜单配置,这次记录一下在TP5项目中获取自动登录的用户信息并存到数据库的操作 基本的流程为:微信设置自动登录的菜单—>访问的URL指定的函数里获取用户信息—...

月夜中徘徊
今天
0
0
youTrack

package jetbrains.teamsys.license.runtime; 计算lis package jetbrains.ring.license.reader; 验证lis 安装后先不要生成lis,要把相关文件进行替换 ring-license-checker-1.0.41.jar char......

max佩恩
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部