学习笔记(1)

Swift 的 nil 和 Objective-C 中的 nil 并不一样。在 Objective-C 中,nil 是一个指向不存在对象的指针。在 Swift 中,nil 不是指针——它是一个确定的值,用来表示值缺失。任何类型的可选状态都可以被设置为 nil,不只是对象类型。

 

Swift 程序由多种标记组成,标记可以是单词,标识符,常量,字符串或符号。

 

1、数据类型:

Int、Double、Float、Bool、String、Character、Optional

Int:在32位平台上,IntInt32长度相同;在64位平台上,IntInt64长度相同。

 

Double 表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。

Float 表示32位浮点数。精度要求不高的话可以使用此类型。

Double精确度很高,至少有15位数字,而 Float 最少只有6位数字。

 

Optional:使用可选类型来处理值可能缺失的情况。可选类型表示有值或没有值。

 

类型别名:typealias newname = type

 

Swift 是一个类型安全(type safe)的语言,所以它会在编译你的代码时进行类型检查

 

 2、可选类型

var optionalInteger: Int?
var optionalInteger: Optional<Int>

当你声明一个可选变量或者可选属性的时候没有提供初始值,它的值会默认为 nil。

 

隐式可选类型:

一个隐式解析可选类型其实就是一个普通的可选类型,但是可以被当做非可选类型来使用,并不需要每次都使用解析来获取可选值。

下面的例子展示了可选类型 String 和隐式解析可选类型 String 之间的区别:

let possibleString: String? = "An optional string."
let forcedString: String = possibleString! // 需要感叹号来获取值

let assumedString: String! = "An implicitly unwrapped optional string."
let implicitString: String = assumedString  // 不需要感叹号

 

强制解析

var myString:String?

myString = "Hello, Swift!"

if myString != nil {
   // 强制解析
   print( myString! )
}else{
   print("myString 值为 nil")
}

 

自动解析:

你可以在声明可选变量时使用感叹号(!)替换问号(?)。这样可选变量在使用时就不需要再加一个感叹号(!)来获取值,它会自动解析。

var myString:String!

myString = "Hello, Swift!"

if myString != nil {
   print(myString)
}else{
   print("myString 值为 nil")
}

 

可选绑定:

使用可选绑定(optional binding)来判断可选类型是否包含值,如果包含就把值赋给一个临时常量或者变量。

var myString:String?

myString = "Hello, Swift!"

if let yourString = myString {
   print("你的字符串值为 - \(yourString)")
}else{
   print("你的字符串没有值")
}

 

3、运算符

位运算符:

位运算符用来对二进制位进行操作,~,&,|,^分别为取反,按位与与,按位与或,按位与异或运算,如下表实例:

pqp & qp | qp ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

 

 

 

 

区间运算符

闭区间运算符:(a...b)     包括a和b

半开区间      :(a..

print("闭区间运算符:")
for index in 1...5 {
    print("\(index) * 5 = \(index * 5)")
}

print("半开区间运算符:")
for index in 1..<5 {
    print("\(index) * 5 = \(index * 5)")
}
posted @ 2021-04-08 16:11  素染年华  阅读(65)  评论(0编辑  收藏  举报