您的当前位置:首页正文

Swift3.0基础学习二

来源:要发发知识网
import UIKit

//--------------------------------字符串的使用--------------------------------
//1.定义字符串
let str = "CF hello world"

//2.遍历字符串中字符
for s in str.characters
{
    print(s)
}

//3.字符串拼接
let strOne = "CF"
let strTwo = "52 Swift"
let strCount = strOne + strTwo
print(strCount)

let age = 18
let name = "CF"
//拼接其他标识符的格式: \(标识符的名称)
let people = "\(age) name"
print(people)

//格式化拼接字符串
let min = 3
let second = 18
let data = String(format: "%02d:%02d", min,second)
print(data)

//4.字符串的截取
let urlStr = 
let header = (urlStr as NSString).substring(to: 3)
let middle = (urlStr as NSString).substring(with: NSMakeRange(4, 5))
let footer = (urlStr as NSString).substring(from: 10)


//--------------------------------数组的使用--------------------------------
//不可变数组定义(let) 可变数组定义(var)
let array = ["one","two","three","4"]
var mutArray = Array<Any>()

//增加元素
mutArray.append("ONE")
mutArray.append("TWO")
mutArray.append("3")

//删除元素
mutArray.remove(at: 1)

//修改元素
mutArray[1] = "THREE"

//查询元素
mutArray[0]

//数组合并
let arrayOne = ["1","2","3"]
let arrayTwo = ["a","b","c"]
let arrayThree = arrayOne + arrayTwo

//遍历数组
for i in 0..<arrayThree.count {
    print(arrayThree[i])
}

for value in arrayThree {
    print(value)
}


//--------------------------------字典的使用--------------------------------
// 注意:在swift中无论是数组还是字典都是使用[],但是如果[]中存放的是元素,编译器会认为是一个数组.如果[]中存放的是键值对,编译器会认为是一个字典
//不可变字典定义(let) 可变字典定义(var)
let dict = ["name":"CF","age":"20","height":"1.80"]
var mutDict = Dictionary<String, Any>()

//增加元素
mutDict["name"] = "CF"
mutDict["age"] = "20"
mutDict["height"] = "1.80"

//删除元素
mutDict.removeValue(forKey: "age")

//修改元素
mutDict["height"] = 1.78

//查找元素
mutDict["name"]

//字典遍历
//遍历所有的key
for key in mutDict.keys {
    print(key)
}
//遍历所有的value
for value in mutDict.values {
    print(value)
}
//遍历所有的key和value
for (key ,value) in mutDict {
    print(key)
    print(value)
}

//字典的合并只能遍历添加 不能直接“+”


//--------------------------------元组的使用--------------------------------
//Swift中新增数据类型元组,实际上就是数组、字典中,存放不同的类型元素
let userArray = ["CF", 18, 1,88] as [Any]
userArray[0]
let userDict = ["name" : "CF", "age" : 18, "height" : 1.88] as [String : Any]
userDict["name"]

// 元组的基本写法
let userInfo = ("CF", 18, 1.88)
userInfo.0
userInfo.1
userInfo.2

// 给每一个元素起别名
let userInfo1 = (name : "CF", age : 18, height : 1.88)
userInfo1.name
userInfo1.age
userInfo1.height

// 别名就是变量的名称
let (userName, userAge, userHeight) = ("CF", 18, 1.88)
userName
userAge
userHeight


//--------------------------------可选类型的使用--------------------------------
// ? 或者 ! 说明是可选类型  
// ?表示为可选类型 !表示为强制解包(如果可选类型无值,强制解包会崩溃)
// 在初始化元素的时候一定要有值 或者?
let myName : String?

myName = "CF"

print(myName as Any) //Optional("CF")
//print(myName!) //CF 强制解包

if myName != nil {
    print("方法一:\(myName!)")
}

if let myName = myName {
    print("方法二:\(myName)")
}

let urlString = 
let url = NSURL(string: urlString)
//1.普通写法
if url != nil {
    let request = NSURLRequest(url: url as! URL)
}

//2.可选绑定
if let url = url {
    let request = NSURLRequest(url:url as URL)
}

//3.可选绑定的简单写法
if let url = NSURL(string: urlString){
    let request = NSURLRequest(url: url as URL)
}



//--------------------------------函数的使用--------------------------------
//1.没有参数没有返回值
func oneFunc() {
    print("iPhone")
}

oneFunc()

//2.有参数没有返回值
func valueFunc(value : String) {
    print("打印传进来的值:\(value)");
}

valueFunc(value: "哈哈")

//3.没有参数有返回值
func iMessage() -> String {
    return "吃了吗?"
}

print(iMessage())

//4.有参数有返回值
func sum(numOne : Int,numTwo : Int) -> Int{
    return numOne + numTwo
}

print(sum(numOne: 23, numTwo: 32))

//函数带有默认参数
func add(numOne : Int = 11, numTwo : Int = 22) -> Int {
    return numOne + numTwo
}

print(add(numOne: 22,numTwo:33))