您的位置:首页 > 移动开发 > Swift

swift

2016-03-07 12:11 666 查看
// 1.单行注释
/*
2.快注释
*/

/*
/*
3.快注释的嵌套
*/
*/

// 1.
// 变量(var)和常量(let,不能再次改变)
// let声明常量,在程序运行期间的值,它的的值不能再次改变.
// 可以不显示的声明常量或变量的类型, swift 语法中有个类型推断机制, 可以根据该变量或者常量的值推断它的类型
// 显示声明类型,就是在:后面写上变量或者常量的类型
let constValue:Int = 31
var varableValue:Int = 49
// 变量和常量变的功能强大, 支持中文和图片(UNCode 编码)

// ***注意:见名之意, 英文
var �� = "zhangsan"
var 小猫 = "lisi"
print("小猫: \(小猫)")

// 2.**分号
// 当同一行上写两行独立的代码, 中间必须要用分号隔开
var a = 10; var b = 20

// 3.变量和常量的类型
// Int
// 自动根据当前计算机的位数来选择, eg:当前计算机是32位,那么 Int == Int32
var intValue:Int = 49
// 为不为负数: UInt,Int
// 表达整数的范围:Int8(-2^7 ~ 2^7 - 1),Int16,Int32,Int64

// 数值型的值(字面量)(包括十,二,八,十六进制)

// 二进制 (十-二 ---- 连除倒取余)
var erValue = 0b110001
print("\(erValue)")
// 八进制
var eightValue = 0o61
print("\(eightValue)")
// 十六进制
var sixteenValue = 0x31
print("\(sixteenValue)")

// 浮点数
// *类型推断机制,会把浮点数都推断称 Double类型(防止数据溢出, 银行才会用到, 但会占用较大内存),建议显示声明类型
var floatValue: Float = 49.8

// 布尔类型
// *在 swift 当中, 布尔类型的值只有两个: true 和 false,没有非0和0的值, 也没有 YES和 NO
if true {

}

// 定义类型别名
typealias QiongType = Int
var qiongValue:QiongType = 23
// *swift 中新增的类型
// 1.元祖(多个不同类型或者相同类型的值组成)
// **一般结合函数来使用, 可以返回多个值
var httpCode:(String,Int) = ("successful",200)
print(httpCode.0)
// 给元祖添加描述信息
// 前面的描述信息可以自定义, 作用,让程序媛看代码时候, 可以准确知道, 值的意思,增加可读性 - 键~值
var httpCode2 = (description:"Error",valueCode:200)
print(httpCode2.description)

// 可选类型 (网络数据请求失败)
// *可选类型单独使用很少,结合构造(OC 的初始化方法)方法来使用, swift 中构造方法有一个**安全性原则:每个类创建出来的对象, 对象的每个属性都必须要有默认值,可选类型是很好的选择,当外界不赋值的时候, 他的值为 nil

// *在 swift 当中,nil代表一个确切的值, 是一个值类型,而在 OC 当中, nil 代表空指针,一个引用
// 我们声明可选类型的时候,就是说该值可能为 nil, 我们取值的时候, 就要进行强制解析(在变量名后面加上!), 不能对为 nil 的,进行强制解析
var optionalValue:Int? = 49
print(optionalValue!)

// *隐式解析
// 使用!声明,其实就是告诉系统,让系统帮我们解析
var optional2:Int! = 34
print(optional2)

// 断言
// 对于程作用, 只序运行而言,没有什么是方便程序员调试 bug
var age = 49
assert(age > 0, "年龄不能为空");

// 运算符
// 一元
// 负号运算符
var fuhaoValue = 23
var fuhaoValue2 = -fuhaoValue
print(fuhaoValue2)
// 正号运算符
// 正号只是 swift 对称
var zhenghaoValue = +fuhaoValue2
print(zhenghaoValue)

// 二元
// 1.赋值运算符
// *不能结合 if-else 使用
// 2.算术运算符
// *取余运算符 (可以前后为 浮点数)
var quyuValue = 10.0 % 3.0
print(quyuValue)

// 3.逻辑运算符(& || 非)
// 逻辑或中的代码短路现象, 前面一个为真, 后面一个式子不会判断

// 4.关系运算符
// 同 C

// 5.组合,+=

// 6.三元(三目)
// eg.  a ? b : c

// --------------------------swift 中新增的运算符
// 1.区间运算符
// ... eg.(1...10) - [1,10]
// ..< eg.(1..<10) - [1,10)

// forin 循环
for value in 1...10 {
print(value)
}

// 空合运算符
// 结合可选类型使用
// *1.??前面必须是可选类型
// *2.??前后的类型必须是一样的
var option3:Int! = 49
var kongheValue = option3 ?? 23
print(kongheValue)

// 字符串
// 1.swift 中新增了一个字符串类型 String, 除了可以使用新增的还可以使用 OC中的类型 NSString,NSMutableString
// 默认为 String 类型
// *String类型的字符串是值类型 (值传递而不是用了引用,重新拷贝了一份给 str2)
// *String 本身没有可变和不可变之分,是否取决于使用 var或者 let 修饰
// *对于复杂字符串操作, 如截取:建议使用 OC 方法
var str1 = "shaoqiong"
var str2 = str1
// 把 str1进行拼接
str1 += "mei"
print(str2)
print(str1)

// 用 String 进行截取
// 是值类型
var index = str1.startIndex.advancedBy(4)
str1 = str1.substringFromIndex(index)
print(str1)

// OC 字符串 (方法, 函数 - 用.)
// 1.引用类型
// *优先使用 OC 字符串, 方法比较熟悉
var OCStr:NSMutableString = NSMutableString (string: "123")
var OCStr2 = OCStr

// 利用 OC 的方法进行拼接
OCStr.appendString("456")
print(OCStr2)
// 使用 OC 字符串进行截取
var subStr = OCStr.substringFromIndex(3)
print(subStr)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: