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, width: 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循环
// Swift中do 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, width: 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