swift基本特性和语法

1,常量和变量

编译器会自己通过值判断类型,不需要指定,如果明确指定可以用as关键字

声明固定类型的变量则是用 :

let a = 10

var b = "b"

let c = 10.2 as Int

var d : Int

另外,字符串可以使用+=

var string = "ab"

string += "c"


2,字典

字典是一种散列表

声明类型使用AnyObject关键字可以是任何类型

let dic = ["a" : "123" , "b" : "223"]

var mDic = ["a" : 1 , "b" : "ccc"] as [String : AnyObject]


3,结构和类

结构是值类型,类是引用类型

换句话说,对函数传入结构传入的是值,传入类实例则传入的是指针

类可以继承,结构不可以

struct Person{

  var firstName, lastName : String

}

class Person{

  var firstName, lastName : String

}


4,运算符

==表示值相等,===表示地址一样

运算符可以重载自定义

class Person{

  var firstName, lastName : String

  var age : Int

}

func == (a:Person ,b:Person) -> Bool{

  if a.firstName == b.firstName && a.lastName == b.lastName {

    return ture

  }

  return false

}

postfix func ++ (inout person:Person) -> Person{

  person.age++

  var person = Person(firstName: person.firstName, lastName: person.lastName, age: person.age)

  return person

}

prefix func ++ (inout person:Person) -> Person{

  var person = Person(firstName: person.firstName, lastName: person.lastName, age: person.age)

  person.age++

  return person

}


5,枚举

枚举可以是任何类型,比如字符串

enum Name: String{

  case FirstName = "Yan"

  case LastName = "Guanyu"

}

使用switch-case去遍历,并且不需要break,会自动break

let name: Name = .FirstName

switch  name{

  case .FirstName:

  case .LastName:

  default:

}

使用rawValue获取枚举原始值

在switch-case中加入where逻辑判断

switch  name{

  case .FirstName where true:

  case .LastName where false:

  default:

}


6,循环遍历

循环0,1,2

for i in 0..<3{

}

循环0,1,2,3

for i in 0...3{

}

不需要i变量

for _ in 0..<3{

}

循环一个字典

for (key: value) in dictionary{

}

循环一个字符串

for string in "abcdefg"{

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值