Swift变量

2018-07-10  本文已影响33人  MemoryReload

相关代码链接

Swift变量声明格式:keyword name:type

var str: String
let π: Double

一、关键字

关键字keyword,一共有两个:varlet,下面解释下两个关键字的用途:

  1. var 声明一个变量,变量的值是可以修改的。初始化之后可以多次重复的赋值,当前值为最后一次赋值的结果。
  2. let声明一个常量,类似于C/C++中的const关键值,表示这是一个常量,是不可修改的。初始化之后值不可以再被修改。

二、命名

Swift的变量名字符集得到了极大的扩充,不再受限于数字字母下划线,它几乎可以使用所有的Unicode字符集,也就是说变量名称可以是汉字、emoji等等。但是,有如下一些限制:

  1. 不能包含空格、数学符号、箭头、私用(无效的)Unicode代码点、行或边框绘制字符。
  2. 不能以数字开头

三、类型

Swift中,变量没有像OC中的基础类型(scalar)和对象(object)类型的区别,完全的面相对象,所有使用的数据类型都是对象。其中基础类型包括:Int 整形,Double实数型,Float浮点型,Bool布尔型,String字符串类型;集合类型(CollectionTypes)包括:Array数组类型、Set集合类型、Dictionary字典类型。这些类型和OC中的基础类型差不多,Swift有新增了一种基础类型:原组(tupe)。

注意:

  1. 变量单独声明,必须显式声明类型。此后类型不能再改变。示例:
var str1: String
var str12; //This will raise an error, cause doesn't declare the type
  1. 变量声明、初始化一次完成,则可以缺省类型声明,变量的类型为所赋值的类型。此后类型不能再改变。示例:
var str2: String="Hello Swift!"
str2="Hello guys!"
var str3="Hello Swift!"
str3=4 //This will raise an error, cause the type of  variable "str" is String, and it's unchangeable.
  1. 常量初始化完成之后,不能再被修改。示例:
let num:Int=4
num=5 //This will raise an error,cause let keyword means that the value of num can not be changed.
  1. Swift中,变量类型和nil不兼容,所以,如果一个变量值可能为空值,则应该将该变量的类型声明为可选类型(在变量的类型type之后添加)。可选类型在赋值或者作为参数传递给非可选类型时,需要对可选类型解包。解包的方式有两种:普通解包和强制解包(在变量名之后加上)。当被解包的可选变量值恰好为nil时,强制解包会引起一个运行时错误。示例:
var str4:String?
str4="Hello Swift!"
var str5:String
str5=str4 //This will raise an error,cause optional type should be unwrapped first before manipulation.
//unwrap
if let tmpStr=str4 {
    str5=tmpStr
}
//force to unwrap
str5=str4!
str4=nil
str5=str4!//This will raise an error, cause force unwrapping gtes a nil value.
上一篇 下一篇

猜你喜欢

热点阅读