Swift变量声明格式:keyword name:type
var str: String
let π: Double
一、关键字
关键字keyword,一共有两个:var
、let
,下面解释下两个关键字的用途:
-
var
声明一个变量,变量的值是可以修改的。初始化之后可以多次重复的赋值,当前值为最后一次赋值的结果。 -
let
声明一个常量,类似于C/C++中的const
关键值,表示这是一个常量,是不可修改的。初始化之后值不可以再被修改。
二、命名
Swift的变量名字符集得到了极大的扩充,不再受限于数字字母下划线,它几乎可以使用所有的Unicode字符集,也就是说变量名称可以是汉字、emoji等等。但是,有如下一些限制:
- 不能包含空格、数学符号、箭头、私用(无效的)Unicode代码点、行或边框绘制字符。
- 不能以数字开头
三、类型
在Swift中,变量没有像OC中的基础类型(scalar)和对象(object)类型的区别,完全的面相对象,所有使用的数据类型都是对象。其中基础类型包括:Int
整形,Double
实数型,Float
浮点型,Bool
布尔型,String
字符串类型;集合类型(CollectionTypes)包括:Array
数组类型、Set
集合类型、Dictionary
字典类型。这些类型和OC中的基础类型差不多,Swift有新增了一种基础类型:原组(tupe)。
注意:
- 变量单独声明,必须显式声明类型。此后类型不能再改变。示例:
var str1: String
var str12; //This will raise an error, cause doesn't declare the type
- 变量声明、初始化一次完成,则可以缺省类型声明,变量的类型为所赋值的类型。此后类型不能再改变。示例:
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.
- 常量初始化完成之后,不能再被修改。示例:
let num:Int=4
num=5 //This will raise an error,cause let keyword means that the value of num can not be changed.
- 在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.
网友评论