swift3.0 初认识基本数据类型及基本的运算符 --- swift 入门
一、思维导图
二、
1.方法的调用及_的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //1.1--> func //func 关键字,name 方法名 , parameters 参数,return type 返回类型 ,function body 表达式 //1.完整版 func name(parameters) -> return type { function body } //2.简法版(无参数,无返回值) func name (){ } //1.2--> "_" //1.21 "_"作为外部参数 sum2(num1: 2, num2: 3) sum1(2, 3)<br> //MARK:_的使用 private func sum2(num1 x:Int,num2 y:Int){ print(x + y)<br> } private func sum1(_ x:Int,_ y:Int){ print(x + y) } |
2. 输出对象
1 2 3 4 5 | //1.用“\+()”来定义,如下,let是定义常量,var是定义变量 例 1 let c:String = "夜空中" let b:String = "最亮的哪颗星" print ( "\(c)\(b)" ) |
3.创建UI及常量
3.1 UI及常量和变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | //1.创建UIView 和按钮 let views = UIView(frame: CGRect(x:20, y: 20, width: 100, height: 100)) //FIXME:改变viewsframe views.backgroundColor = UIColor.yellow view.addSubview(views) //MARK: 创建一个按钮 let Button2 = UIButton(type: .contactAdd) Button2.backgroundColor = UIColor.red //FIXME:sfsl Button2.frame = views.bounds views.addSubview(Button2) // Button2 .addTarget(self, action: #selector(button2Click), for:) Button2.addTarget(self, action: #selector(button2Click), for : .touchUpInside) } //MARK:-- methods response func button2Click() { print( "按钮单击" ) } //2.常量和变量 let a = 10 let b:Double = 105.3 // Binary operator '+' cannot be applied to operands of type 'Int' and 'Double' print(a+Int(b)) var name:String = "Hello Word" //不管是变量还是常量必须初始化,且常量的值不能改变 name = "我是 Hello Word" print(name) //3.分支和三运算 //1 if f let a = 10 if a > 5 { print( "a>5" ) } else { print( "a<5" ) } //2 三目 // a > 5 ? print("a大") : print("a小") //或写成 a > 5 ? print( "a大大大" ) :() |
3.2 常用的判断语句(守护的类型必须是可选类型,否则不可以用guard let 或 if let )
1. if let
1 2 3 4 5 6 | if let indexPath = sender as ? IndexPath{ vc.person = personList[indexPath.row] vc.completion = { self.tableView.reloadRows(at: [indexPath], with: .automatic) } } |
2. guard let
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | //1.格式 guard let 变量名 = 已定义好的属性 else { //条件不成立时 return } //条件成立时 要赋值的属性 = 变量名(上面定义好的) guard ([gɑːd]) 守卫;警戒;护卫队;防护装置vi. 警惕vt. 保卫;监视 gua +rd //2.实例 guard let name = nameText?.text, let phone = person?.title, let detail = person?.title else { print( "不能为空" ) return } |
3.创建数组
1 2 3 4 | //不可变数组 let array = [返回的类型]() //可变数组 var array1 = [返回的类型]() |
4.分支
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | --Switch的使用--<br> //1.方法的调用 switchRun(name: "9" ) //2.方法的实现 private func switchRun(name:String){ //switch 中的case 为数字当没有值时才会用到break //可以对任何值进行判断,不在像objc中局限在整数 //所以分支至少要有一个分支,如果什么也不干用break //可以在case使用多个值 switch name{ case "8" : break case "9" , "10" : print( "这是对的" ) default : break } } |
5.循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | //半开半闭区间,[0,5) print( "/半开半闭区间,[0,5)" ) for i in 0..<5{ print( "\(i)" ) } print( "闭区间[0,5]" ) //闭区间[0,5] for i in 0...5{ print( "\(i)" ) } //反序,10到0 for i in (0...10).revered{ print( "\(i)" ) } |
三、基本数据类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 1、基本数据类型 Int 整型值,分为Int8,Int16,Int32,Int64 Double和 float 浮点型 Bool 布尔值 String 文本类型值 Int 与 UInt (尽量不要使用UInt,除非你真的需要存储一个和当前平台原生字长相同的无符号整数。除了这种情况,最好使用Int,即使你要存储的值已知是非负的。统一使用Int可以提高代码的可复用性,避免不同类型数字之间的转换,并且匹配数字的类型推断) Double与 float 2、常量和变量 2.1 常量在 Swift 中,如果你要处理的值不需要改变,那使用常量可以让你的代码更加安全并且更清晰地表达你的意图。 2.2 常量和变量必须在使用前声明,用 let 来声明常量,用 var 来声明变量。 2.3 实例 let max = 10 //不需要强制指定类型,swift会自动转化 var min = 0 min = 5 //声明多个常量或变量用,分开 let a = 0,b = 1,c = 2 print(a,b,c) print(max,min) 2.4 类型标注 (如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称) 2.41 一般来说你很少需要写类型标注。如果你在声明常量或者变量的时候赋了一个初始值,Swift可以推断出这个常量或者变量的类型 2.42 类型标注实例 let str1:String = "love" print( "\(str1)" ) 2.5 常量和变量的命名 (常量与变量名不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。) 2.51 let 你好 = "中国" print(你好) 3、集合 4、高级数据类型(元组) 元组可以让你创建或者传递一组数据,比如作为函数的返回值时,你可以用一个元组可以返回多个值 5、可选类型(?!表示可选解包和强制解包) 6、安全性 Swift 是一门类型安全的语言,可选类型就是一个很好的例子,在类型不同时swift强制你类型转化,不转化代码会报错 7、注释, //,/*代码块*/,/* /*代码块一*/,/*代码块N*/*/ |
四、基本运算符
与oc不一样的部分
1、空合运算符
1 2 3 4 5 6 7 8 9 | 空合运算符(a ?? b)将对可选类型a进行空判断,如果a包含一个值就进行解包,否则就返回一个默认值b.这个运算符有两个条件: 1、表达式a必须是Optional类型 2、默认值b的类型必须要和a存储值的类型保持一致 实例 let defaultColorName = "red" let userDefineColorName:String? = nil //强制的要初始化,不初始化会出错 let colorNameToUse = (userDefineColorName ?? defaultColorName) print( "\(colorNameToUse)" ) |
2、区间运算符
2.1 闭区间运算符
1 2 3 4 5 6 7 8 9 10 11 12 | 闭区间运算符(a...b)定义一个包含从a到b(包括a和b)的所有值的区间,b必须大于a。 闭区间运算符在迭代一个区间的所有值时是非常有用的,如在 for - in 循环中: 实例: //闭区间运算符 for index in 1...5{ //从1到5,1<=index<=5 print( "\(index) * 5 = \(index*5)" ) } 打印结果: 1 * 5 =5 2 * 5 =10 3 * 5 =15 4 * 5 =20 5 * 5 =25 |
2.2半开区间运算符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 半开区间(a..<b)定义一个从a到b但不包括b的区间。 之所以称为半开区间,是因为该区间包含第一个值而不包括最后的值。 半开区间的实用性在于当你使用一个0始的列表(如数组)时,非常方便地从0数到列表的长度。 实例: 半开区间运算符 let names = [ "Anna" , "Alex" , "Brian" , "Jack" , "xingZai" ] let count = names.count for index in 0..<count{ print( "第\(index+1)个人叫\(names[index])" ) } 打印结果: 第1个人叫Anna 第2个人叫Alex 第3个人叫Brian 第4个人叫Jack 第5个人叫xingZai 数组有5个元素,但0..<count只数到4(最后一个元素的下标),因为它是半开区间。 |
将来的自己,会感谢现在不放弃的自己!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现