swift初体验

// 1.导入框架
// #import <UIKit/UIKit.h>
import UIKit


// 2.定义标识符
// 注意:在Swift中如果打算定义`标识符`,必须制定该标识符是一个变量还是一个常量
// 如果定义一个变量:使用var来修饰
// 如果定义一个常量:使用let来修饰
// int a = 10;
let a : Int = 10
// a = 20 错误写法

var b : Double = 1.414
b = 2.5


// 3.语法结束后不需要加;(一行代码中只有一条语句)
// 但是开发过程中不建议一行中有多条语句
let m : Int = 23
var n : Double = 3.14


// 4.Swift中如何打印`内容`
// NSLog(@"%d", a)
print(a)

// NSLog(@"hello world") OC:@[@"why", @"yz"] Swift:["why", "yz"]
print("hello world")

// 注意:
// 1.在开发中优先使用常量,只有在需要修改时,才将let修改成var
let π : Double = 3.14
// π = 3.15 错误写法

// 2.常量的含义是标识符类保存的内存地址不可以修改
// 但是可以通过内存地址拿到对象,之后修改对象内部的属性
// UIView *view = [[UIView alloc] initWithFrame:];
// view.backgroundColor = [UIColor redColor]
// 2.1.在Swift中创建对象:类名字()
let view : UIView = UIView()
// view = UIView()

// 设置UIView的背景颜色
view.backgroundColor = UIColor.redColor()


// 了解:后续会详细讲解
// 3.Swift中创建对象的练习
let view1 : UIView = UIView(frame: CGRectMake(0, 0, 100, 100))
view1.backgroundColor = UIColor.yellowColor()
view1.frame = CGRect(x: 0, y: 0, 50, height: 50)

// 创建UIButton
// UIButton alloc] initWithFrame
// let btn : UIButton = UIButton(frame: <#T##CGRect#>)
// UIButton alloc] initWithType:枚举
// 枚举的使用:1.枚举名称.具体的类型 2. .具体的类型
let btn : UIButton = UIButton(type: .ContactAdd)

view1.addSubview(btn)


// 1.整型(Int)和浮点型(Double)
let a : Int = 3
var b : Double = 1.414


// 2.类型推导:定义一个标识符时如果有直接赋值,那么编译器会根据后面赋值的类型推导出前面标识符的类型
// 技巧:可以通过 option + 鼠标左键 查看一个标识符的类型
let m = 20
let n = 3.14

let view = UIView()

// 3.Swift中的基本运算
// OC中有隐式转化:如果将一个整型和一个浮点进行运算,会自动将整型转成浮点型之后再进行运算
// 注意:1.Swift中没有隐式转化 2.不同类型之间不能进行运算

// Swift中的类型转化
// 将Int类型转成Double类型:Double(m)
let result : Int = Int(Double(m) + n)

// 将Double类型转成Int类型:Int(n)
let result1 = m + Int(n)

// 1.switch的基本使用

// 规范:0: 1: 其他:其他

let sex = 1

// OC的区别:1.switch后面可以不跟() 2.case结束可以省略break(默认会帮你加上),不会产生case穿透

// 如果希望出现case穿透:可以在case语句结束后加`fallthrough`

switch (sex) {

case 0:

    print("")

    fallthrough

case 1:

    print("")

default:

    print("其他")

}

// 2.基本使用的扩充

// 补充:case后面是可以跟多个条件,多个条件之间以,分割

switch sex {

case 0, 1:

    print("正常人")

default:

    print("其他")

}

 

// 3.switch支持其他数据类型

// 3.1.浮点型

let a = 3.14

 

if a == 3.14 {

    print("aπ")

} else {

    print("a不是π")

}

 

// 3.2.字符串类型

let m = 29

let n = 32

 

let opration : String = "+"

 

var result = 0

 

//if opration == "+" {

//    result = m + n

//} else {

//    

//}

switch opration {

case "+":

    result = m + n

case "-":

    result = m - n

case "*":

    result = m * n

case "/":

    result = m / n

default:

    print("不合理的操作符")

}

 

print(result)

 

 

// 3.3.区间

let score = 88

 

//if score < 0 || score > 100 {

//    print("不合理的分数")

//} else if

 

switch score {

case 0..<60:

    print("不及格")

case 60..<80:

    print("及格")

case 80..<90:

    print("良好")

case 90...100:

    print("唉哟,不错哦")

default:

    print("不合理的分数")

}

//guard满足时执行下一个判断条件,不满足时执行else(跟if有点相反) 

func online(age : Int) {

    // 1.判断是否大于等于18

    guard age >= 18 else {

        print("年龄不符合")

        return

    }

    

    // 2.判断是否带了身份证

    guard 带了身份证 else {

        print("回家拿身份证")

        return

    }

    

    // 3.判断是否带了钱

    guard 带了钱 else {

        print("回家拿钱")

        return

    }

    

    print("注册账号")

    print("交钱")

    print("上网")

}

 

online(age)

// 1.for循环

// 1.1.常规写法(类型OC常规写法)

// for (int i = 0; i < 10;i++) {}

for var i = 9; i >= 0; i-- {

    print(i)

} 

// 1.2.forin写法:区间遍历

for i in 0...10 {

    print(i)

}

 

// 如果在for循环中不需要用到i,可以使用_来代替

for _ in 0..<10 {

    print("hello world")

}

 

// 2.while循环

// 1.while后面不需要() 2.判断句必须有明确的真假(Bool)

var a = 10

while a > 0 {

    print(a)

    a--

}

 

// 3.do while循环

// Swiftdo while循环是repeat来代替do

repeat {

    print(a)

    a++

} while a < 10

 

// 1.定义字符串

let str : String = "hello world"

 

// 2.遍历字符串

for c in str.characters {

    print(c)

}

 

// 3.字符串的拼接

// 3.1.字符串之间的拼接

let str1 = "xiao"

let str2 = "ma"

let str3 = "ge"

// NSString stringwithformat:@"%@%@%@", str

let result = str1 + str2 + str3

 

// 3.2.字符串和其他标识符之间的拼接

let age = 18

let name = "why"

let height = 1.88

// 在字符串中拼接其他标识符:"(标识符的名称)"

let userInfo = "my name is (name), my age is (age), my height is (height)"

 

// 3.3.字符串的格式化()

let min = 3

let second = 14

let timeStr = String(format: "%02d:%02d", arguments: [min, second])

 

 

// 4.截取字符串

let urlStr = "www.520it.com"

// String类型转成NSString类型: (urlStr as NSString)

let qianzhui = (urlStr as NSString).substringToIndex(3)

let houzhui = (urlStr as NSString).substringFromIndex(10)

// NSMakeRange(4, 5)

let range = NSRange(location: 4, length: 5)

// CGRectMake(0, 0, 100, 100) CGRect(x: 0, y: 0, 100, height: 100)

let middle = (urlStr as NSString).substringWithRange(range)

// 定义元组

// 应用场景:函数的返回(如果一个函数有多个返回值)

// 基本的写法

let errorInfo = (404, "Not Found")

errorInfo.0

errorInfo.1

 

// 给元素起别名

let errorInfo1 = (errorCode : 404, errorMsg: "Not Found")

errorInfo1.errorCode

errorInfo1.errorMsg

 

// 标识符就是对应的元素的别名

let (errorCode, errorMsg) = (404, "Not Found")

errorCode

errorMsg

 

 

原文地址:https://www.cnblogs.com/xieyunqq/p/5211873.html