天天看点

Swift变量-常量-可选类型-字面量

变量的声明与赋值。可以只声明(<code>var varb:float</code>)也可以直接赋值。

变量的输出:

常量只需要用let 且常量不能只声明 不赋值

字面量:

所谓字面量,就是指像特定的数字,字符串或者是布尔值这样,能够直接了当地指出自己的类型并为变量进行赋值的值。

字符串型字面量

字符串型字面量由被包在双引号中的一串字符组成

字符串型字面量中不能包含未转义的双引号 (")、未转义的反斜线(\)、回车符或换行符。因为:

Swift变量-常量-可选类型-字面量

布尔类型的变量有三种值:

true

false

nil

下面重点说一下swift可选类型:

可选类型用于处理值可能缺失的情况。可理解为可选类型就是对变量或常量的一种包装。可选类型的表现方式就是在类型后面加个?,例如int的可选类型为int?,string的可选类型为等string?。

一个可选类型代表着值有两种可能性:如果可选类型不为空,那么它所包装的变量或常量有值,反之,它所包装的变量或常量没有值。

注意两点:

swift中的nil,必须用可选类型接收。

c 和 objective-c 中并没有可选类型这个概念。最接近的是 objective-c 中的一个特性,一个方法要不返回一个对象要不返回nil,nil表示“缺少一个合法的对象”。然而,这只对对象起作用——对于结构体,基本的 c 类型或者枚举类型不起作用。对于这些类型,objective-c 方法一般会返回一个特殊值(比如nsnotfound)来暗示值缺失。这种方法假设方法的调用者知道并记得对特殊值进行判断。然而,swift 的可选类型可以让你暗示任意类型的值缺失,并不需要一个特殊值。

当你确定可选类型一定包含值之后,你可以在可选的名字后面加一个感叹号!来解包获取值。这被称为可选值得强制解包(forced unwrapping)如果这个可选类型值是nil的话 就会导致强行解包运行错误。

如果我们声明的时候用感叹号替代问号,那么可选变量在使用时就不需要再加一个感叹号(!)来获取值,它会自动解析。

但是我们不推荐强制解包 使用可选绑定(optional binding)获取可选类型的值(建议的用法)