Swift入门笔记1

来源:互联网 发布:郑大网络远程教育 编辑:程序博客网 时间:2024/06/07 16:05
  var a = 123  //  自动判断a 为int型,也可以   var a:Int = 123 方法调用  book.printTitle( )    //和c++函数调用写法一样 swift的范型,类似于c++的模板 oc一个字典或数组可以存多种类型数据,swift只能存一种(其实是官方建议),这样的好处是保证类型安全 写法 let array = [2,4, 6]    let dictionary = [“name”:”xiaoming”,”school”:”yizhong”] 指定类型 写法 let array:Array<Int> = [2,4, 6]        let dictionary:Dictionary<String,String> =  [“name”:”xiaoming”,”school”:”yizhong”] 简化指定类型写法: let array:Int[ ] = [2,4,6]  let 声明数组和字典是不可变的   var声明则是可变的

字符串连接:
let string1 = “hello”
let string2 = “world”
var string3 = “”
string3 = string1+string2
直接用 + 号就可以串连字符串, 直接用 == 就可以比较字符串是否相等(因为oc中字符串是指针类型,用 ==相当于在比较指针,而swift字符串是 值类型)

countElements(str) //计算字符串长度, 不像oc用点语法的length

switch语句中 case后面不用加break,因为执行完一条case就自动结束switch

oc swift对应关系 id —AnyObject nil — NONE
OC 数组强转为swift : let array :AnyObject []= //oc返回的数组 ,因为swift数组只能存一种类型,oc可以存多种,所以要强转一下。

类型判断 if str is String { println(“this is string”) } //swift
if ([str class] isEqualtoString) …… //OC
小数默认是double型的

var aere = Double(r) * Double (r) * pi

Bool : true false

区间:
var range = 1..<5 //半闭
var range = Range(start : 1,end : 5)
Range类型实现了Sequence协议,通过重写Sequence 协议的generate方法,实现自己的区间

  var range = 1…5  //全闭区间

区间最大的好处在于 for循环 和switch语句

元组(tuple) 很像oc的字典,一个元组可以存多种类型,元组的访问,既可以像访问素组那样,通过下标,也可以像字典那样通过键值方式

 let iata_pek = (“PEK”,”厦门机场”)          let iata_pek = (code:”PEK”,airport:”厦门机场") println(“ 编码:\(iata_pek.0) ,机场:\(iata_pek.1)    ”) println(“ 编码:\(iata_pek.code) ,机场:\(iata_pek.airport)    ”) 可以把元组分解成变量,这样使得访问里面的变量更加简单 let (code,airport) = iata_pek println(“ 编码:\(code) ,机场:\(airport)    ”)

oc 里的 for in 循环,能对数组 ,字典快速迭代, swift 增加了 Range 和字符串 迭代,例如 for i in 1…5{ }

switch中的case 还可以匹配 元组,区间

0 0
原创粉丝点击