初接触 Swift

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初接触 Swift相关的知识,希望对你有一定的参考价值。

// Swift 没有 main 函数 没有占位符  OC 中的字符串 数组 字典等都要用到 @ 但 Swift 中都不在用 @

// 常用的数据类型
let b1:Int = 10
let b2:Double = 1.22
let b3:String = "sdf"
var b4:Character = "a"

// 求字符串的长度
  // 与 OC 不同 ???
    // OC 直接 .count就可以获取字符串长度 而 Swift 是先获取字符串中所有的字符 在获取个数
var str = "string"
//print(str.characters.count)

// 拼接字符串
  // 与 OC 不同
    // OC 是用 stringWithFormat:拼接  或者 appendingWithString:
    // Swift 分以下两种
// 1> 字符串与字符串拼接
var str1 = "good"
var str2 = "morning"
//print("\(str1)\(str2)") // 或者如下
str1 += str2
//print(str1)
// 2> 字符串与字符拼接
let s:Character = "a"
str.append(s)
//print(str)

// 是否相等 ==
  // OC 中 基本数据类型用 ==   字符串用 isEqualToString: 如果 if 判断 if 后面没有其他的选择时 大括号 可以省略
  // Swift 中 无论是字符串还是基本数据类型都是用 ==   其中 if判断中 if 后面的 小括号 可以 省略 但 大括号 必须保留
if (str == "good") {
    print(str)
}

// 前缀/后缀
str.hasPrefix("st")
str.hasSuffix("ing")

// 大小写转换
var str3 = "GOOGLE"
print("转换成小写的\(str3.lowercaseString)")
print("转换成大写的\(str3.uppercaseString)")

// 字符串支持遍历
for item in str3.characters {
    print(item)
}

// 将 Swift 字符串转换成 OC 对象
let str4 = str3 as NSString
print(str3)

// 数组
// 创建数组 一定要指定元素的数据类型

var array:[String] = ["1", "2", "3"]
// 添加元素
array.append("4")
// 删除
array.removeAll() // 移除所有元素 包括数组开辟的空间 array = nil
array.removeAll(keepCapacity: true) // 移除所有元素 但 保留数组开辟的空间 array.count = 0
array.removeAtIndex(2) // 移除对应下标下的元素
array.removeFirst() // 移除第一个元素
array.removeLast() // 移除最后一个元素
// 数组的遍历
for item in array {
    print(item)
}
// 元组遍历
for (index, value) in array.enumerate() {
    print("index=\(index), value=\(value)")
}
print(array.count) // 数组个数
// 合并数组
var arrar1:[String] = ["mi", "33"]
array += arrar1

// 字典
// 创建字典也要指出字典的类型 用[] 没有 {}
var dic:[String:AnyObject] = ["1": "you", "2": "wo"]
var dic1:[String:AnyObject] = ["2": "f", "3": "sss", "5": "sdf"]
// 增加和更新键值对
dic["3"] = "mm" // 如果字典中有这个 key 那就是更新 如果没有就是 添加
// 删除键值对
dic.removeAll() // 移除所有元素 包括数组开辟的空间 dic = nil
dic.removeAll(keepCapacity: true) // 移除所有元素 但 保留数组开辟的空间 dic.count = 0
dic.removeAtIndex(dic.indexForKey("1")!) // 注意此处的 !   移除对应下标下的元素
dic.removeValueForKey("1") // 移除对应下标下的元素
// 普通便利
for item in dic.enumerate() {
    print(item)
}
// 元组遍历
for (index,value) in dic.enumerate() {
    print("index=\(index), valu=\(value)")
}
print(dic.keys) // 所有 key
print(dic.values) // 所有 value
// 合并两个字典
for item in dic.keys {
    dic1[item] = dic[item]
}

// 可选类型
// 可选类型: 如果一个值有可能是空 也有可能有值 那这个值就是一个可选类型   可选类型用 ? 表示
// 可选类型不能直接参与运算 要先强制解包(wrapped)  用!表示
// warning 在对一个可选类型类型进行解包之前必须确认这个可选值不为 nil
// unexpectedly found nil while unwrapping an Optional value 说明对要对 nil 强制解包
// 在模型里面所有的基本数据类型不可以为可选类型 否则会在字典传模型的时候找不到 key 解决方法 给可选类型一个默认值 0
var c1:Int? = 1
let c2 = 2
let c3 = c1! + c2
print(c3)

// ?? 空运算标识符
// 作用: 如果可选类型值不为空 ?? 会自动帮我们解包再参与运算 如果是可选类型值为空 就是用 ?? 后面提供的默认值进行运算
var value:Int?
let value1 = (value ?? 5) + 10
print("value1 = \(value1)")


// 枚举
enum Month:String {
    // 第一种方式
    case January = "一月"
    case February = "二月"
    case Match = "三月"
    // 第二种方式
//    case January, February, Match
}
var month = Month.February
month = .February
print("month=\(month.rawValue)") // 用于获取 枚举值对应的 默认值(一月 二月 三月)
print("month=\(month.hashValue)") // 获取枚举值对应的 index

// 控制流

// if语句
// Swift 中没有非0即真的概念
let a = 10
if a > 3 {
    print(a)
}

// if let
// if let 先判断可选类型器是否为空 不为空创建一个局部常量来接收此时可选类型的值 在执行代码块 否则就不执行代码块 相当于 if a == 10 {} else {}
var aa:Int?
if let b = aa {
    print(b)
}
// if let where
// 对定义出来的常量在进行一次判断
if let bb = aa where bb > 9 {
    print(bb)
}

// guard 守护
// 是用来判断可选类型是否有值 没值就执行 else  类似于 if let
func demo() { // 无参无返函数
    var a10:Int? = 11
    guard let d = a10 else {
        print("nil")
        return
    }
    print(d)
}
demo() // 调用

// switch
// switch 后面的小括号 可以省略 case 后面不用写 break 不会造成穿透效果 default 必须添加 而且只能添加在最后 case 后面只有一条语句 {}可以省略
// switch 不在想 OC 那样只局限与整形的选择 字符串 浮点型 等都可以
// 整形表示
let a1 = 10
switch a1 {
case 2:
    print("a = 2")
case 10:
    print("a = 10")
default:
    print("nil")
}

// 字符串表示
let string = "Beautiful"
switch string {
    case "sdb":
    print("nil")
    case "Beautiful":
    print(string)
default:
    print("Happyness")
}

// for 循环
// 写法 1
var i = 0
for i = 0; i < 10; i++ {
    print(i)
}
// 写法 2
for i in 0...10 { // 书写格式必须这样写
    print(i)
}
// 写法 3
for i in 0..<10 {  // 书写格式必须这样写
    print(i)
}
// while
var j = 10
while i > 1 {
    i--
}
// 在 Swift 中没有do while

以上是关于初接触 Swift的主要内容,如果未能解决你的问题,请参考以下文章

HTML初接触

SmartImageView初接触

PHP webservice 的初接触

SpringBoot初接触

初接触劫持,请教下各位

Activity初接触