一.引言
我所说的零基础是指Swift语言零基础, 之前开发一直用的OC, 没接触过Swift, 最近看到大家都在学些Swift, 刚好最近有点时间就决定每天抽一到两个小时学习一点Swift.准备每天写一点随笔, 记录自己Swift的学习过程, 并不是为了教大家Swift, 只是单纯的想督促下自己的学习, 其中多数东西属于个人的推断或者理解, 还望懂的各位多多指教.
二. Swift第一天
①.字符串
var name = "Chris Paul" //var创建变量, 会自动推断类型,Swift中的字符串, 不需要了@符号, 且结尾不需要分号了
var name1:String = "Chris Paul" //在变量名后面以: 隔开, 后面可以规定变量的数据类型, 暂时没发现NSString和String有什么区别, 反正都没报错
print(name) //输出函数, (想要自动换行请使用println函数)跟OC中的NSLog一样, 这里括号中直接写上要输出的参数即可, 也可以使用"", 中间添加要输出 的内容
let name2 = name +" " + name1 //可以使用加号连接字符了, 使用方法跟JS中是一样的, let定义的常量
let number = 30
let string = name2 + "" + String(number) //最后一个加号后面的, 就是Swift中的强转类型, 意为把number转成字符串
let name = "Chris Paul"
let testString = "Name is \(name)" //用\()表示引用, 输出的结果为:Name is Chris Paul
②数组
var array:[String] = ["dhggmng", "poimng", "cxnmznb", "dqonmdw"] //Swift中创建一个数组, 据说Swift中一个数组中只能放一种数据类型, 但是我不指定类型, 数组中各种数据混着放, 也没报错! 所以这个地方有待进一步考证
print(array[1]) //取数组对象可以通过下标去取
var array1 = [] //创建一个空的数组
if (arrar1.isEmpty){
print("数组为空") //数组有isEmpty属性可以判断数组是否为空, 跟之前用的array1.count == 0是一样的, 返回值为BOOL
}
array1.append("doomgnn") //使用append方法, 可以给数组添加对象, 该对象会放在数组的最后, 同样也可以使用+=, 方法如下
array1 += "domngng" //感觉这个方法好流弊啊, 而且+=还能直接将两个数组拼起来, 这简直凶残啊
array1 += ["mnlaogn", "zbbnnaq", "uqomngn"]
array1[1...3] = ["cccc", "mmmm"] //此处...的意思, 个人理解是1到3得意思, 这个操作的意思就是把下标从1到3得替换调, 后面就写了两项, 所以新数组 就少了一项.
array1.insert("Hello", atIndex: 1) //在下标1的位置插入"Hello"这一项, 感觉Swift这个var(变量)好智能啊, 全成可变的了.
var array2 = array1.removeAtIndex(0) //移除下标为0的元素, 这里需要注意的是, 打印array2, 打印出来的结果是移除的那个对象, 并不是移除后的数组,但此时的array1已经发生了变化, 其实想一出一个对象, 可以直接去调用方法, 无需去接收.
for str in array2{
print(str) //这里使用for...in, 经试验, for后面竟然可以随意指定一个东西, 都能索引到, 根本不用指定类型, 好奇怪啊
}
for (index, value) in enumerate(array1) {
println("Item \(index + 1): \(value)") //这中方式返回的结果就会以键值对的形式返回了, 这样看起来会更舒服点
}
someInts.append(3) //someInts当前包含一个Int值
someInts = [] //现在someInts时空数组了, 但他会成为Int[]的, 感觉这种规定很奇怪啊
var array2 = Array(count: 3, repeatedValue:"What") //创建包含三个"What"字符串的数组
var array2 = [String](count: 3, repeatedValue:"What") //这样就可以指定数组中包含的数据类型, 创建出来的效果跟上面的时一样的
结语:用了一个小时多一点的时间简单学了一下数组和字符串, 感觉跟OC的差别真的好大, 接受着有点困难, 慢慢来吧.其中有什么不对的地方, 还望懂的提出, 我好改正, 谢谢! - CP