swift4.0 的let与var学习(一)
前言
swift作为一门新语言,对于熟悉Object-C编程的ios开发者来说还是挺容易上手的,但其在语法和编程习惯上改变了很多。本篇以及后续的swift文章都是基于有Object-C的学习,代码为主,文字配合讲解,对你们是一种学习,对我而言同样。
swift初学 - 简单值之 let 常量与 var 变量
oc中常用的可变与不可变,在swift中进行了整合,
- <var 声明> 可变数组、可变字典、变量等等
- < let 声明> 不可变数组、不可变字典、常量等等
特别注意!let 和 var 的使用规则
使用 let 声明常量-------------
-
使用 let 声明 Int、Double、Float 常量
let a = 10 <系统自动检测,Int 类型>
let b:Int = 10 <Int类型>
let c:Float = 10.0 <Float类型>
let d:Double = 10.0<Double类型>
Int、Float与Double相加,必须转成相同的数据类型
let e:Int = b + a
let e:Float = c + Float(a)
let e:Double = d + Double(a)
-
使用 let 声明 String 常量
let a = "a"<系统自动检测,无@符号,string 类型>
let a:String = "a"<String类型>
字符串与Int、Float与Double类型相加
let i = 10, d = 10.0, f = 10.0
let s = "10"
let stringAddInt:String = s + String(i) //"1010" 字符串拼接
let IntAddString:Int = i +(s as NSString).integerValue //20 转成oc的字符串,再转成数据类型,最后相加
float、double同理
* 理解swift"+"的作用!与oc中"+"的区分!!!
-
使用 let 声明 Array 常量
let array = ["1","2"]
let 声明的array 与 oc 中的NSArray 的意义是相同的!!
-
使用 let 声明 Dictionary 常量
let dictionary = ["key1" : "value1" , "key2" : "value2"]
let 声明的 dictionary 与 oc 中的 NSDictionary 的意义是相同的!!
Array 和 Dictionary 在swift中,都是使用"[ ]"中括号声明,其中的区别请研究上述两个声明方式。
使用 var 声明变量-------------
-
使用 var 声明 Int、Double、Float 变量
var a = 10 <未特殊说明,与 let 常量声明规则相同>
var b:Int = 10
var c:Float = 10.0
var d:Double = 10.0
使用var声明 a、b、c、d,可以被重复赋值!!!
a += b //a = 20
b = 20
c = 20.0
d = 20.0
-
使用 var 声明 String 变量
创建一个空字符串
var string = ""
string = "test1" <正确>
string = "test2" <正确>
使用var声明 string,可以被重复赋值!!!
-
使用 var 声明 Array 变量 - 可变数组
var array = ["111","222"]
创建一个空数组
var array = [Int] () //中括号为元素类型
var array = [String] ()
var array = [any] () //any表示任意类型
var 声明的 Array 与 oc 中的NSMutableArray 的意义是相同的!!!
-
使用 var 声明 Dictionary 变量 - 可变字典
var dictionary = ["key1" : "value1" , "key2" : "value2"]
创建一个空字典
var emptyDictionary = Dictionary<key, value>
var emptyDictionary = Dictionary<key, String>
var emptyDictionary = Dictionary<key, Array>
var emptyDictionary = Dictionary<key, Dictionary>
可以使用 emptyDictionary 加入元素,以及处理元素
var 声明的 dictionary 与 oc 中的NSMutableDictionary 的意义是相同的!!!
总结
swift中的 let 与 var 声明对象统一了原本oc中的NS和NSMutable部分类。
发现有一些微妙的变化,细节描述不清,待日后完善。