一、思维导图

二、

1.方法的调用及_的使用

//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)
//MARK:_的使用
private func sum2(num1 x:Int,num2 y:Int){
print(x + y)
}
private func sum1(_ x:Int,_ y:Int){
print(x + y)
}

2. 输出对象

//1.用“\+()”来定义,如下,let是定义常量,var是定义变量
例 1
let c:String = "夜空中"
let b:String = "最亮的哪颗星"
print ("\(c)\(b)")

3.创建UI及常量

  3.1 UI及常量和变量

//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

if let indexPath = sender as? IndexPath{
vc.person = personList[indexPath.row]
vc.completion = {
self.tableView.reloadRows(at: [indexPath], with: .automatic)
}
}

2. guard let

 //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.创建数组

//不可变数组
let array = [返回的类型]()
//可变数组
var array1 = [返回的类型]()

4.分支

--Switch的使用--
//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.循环

    //半开半闭区间,[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、基本数据类型
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、空合运算符

空合运算符(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 闭区间运算符

闭区间运算符(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半开区间运算符

半开区间(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(最后一个元素的下标),因为它是半开区间。

swift 简介和常量与变量 --- swift 入门的更多相关文章

  1. swift学习之常量和变量

    常量:就是在初始化时(试试定义时不赋值会不会报错)赋予一个准确的值,能够在非常多地方直接用到,用letkeyword生命 变量:这个就不用说了,就是能够在下一秒你能够随便改变的量,用varkeywor ...

  2. Swift语言指南(一)--语言基础之常量和变量

    原文:Swift语言指南(一)--语言基础之常量和变量 Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swif ...

  3. swift学习第一天:认识swift以及swift的常量和变量

    一:认识swift // 1.导入框架 //#import <UIKit/UIKit.h> import UIKit // 2.定义一个标识符 // int a = 10; // swif ...

  4. 【C++基础】008常量和变量

    简介:常量和变量. 常量和变量 1. 常量 具体把数据写出来 2,3,4: 1.2,1.3: "Hello World!","C++": cout <&l ...

  5. Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数

    Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4  为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift1 ...

  6. iOS开发Swift篇—(二)变量和常量

    iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...

  7. iOS开发零基础--Swift基础篇--常量&变量的定义

    什么是常量和变量 在Swift中规定:在定义一个标识符时必须明确说明该标识符是一个常量还是变量 使用let来定义常量,定义之后不可以修改 使用var来定义变量,定义之后可以修改 常量和变量的使用注意: ...

  8. iOS开发Swift篇(01) 变量&常量&元组

    iOS开发Swift篇(01) 变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对于14年 ...

  9. Swift常量和变量

    常量和变量由一个特定名称来表示,如maxNumber 或者 message.常量所指向的是一个特定类型的值, 如数字10或者字符”hello”.变量的值可以根据需要不断修改,而常量的值是不能够被二次修 ...

随机推荐

  1. .NET Core采用的全新配置系统[6]: 深入了解三种针对文件(JSON、XML与INI)的配置源

    物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurationSource.XmlConfigura ...

  2. [C#] 走进异步编程的世界 - 在 GUI 中执行异步操作

    走进异步编程的世界 - 在 GUI 中执行异步操作 [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5877042.html 序 这是继<开始接 ...

  3. js的单线程和异步

    前言 说到js的单线程(single threaded)和异步(asynchronous),很多同学不禁会想,这不是自相矛盾么?其实,单线程和异步确实不能同时成为一个语言的特性.js选择了成为单线程的 ...

  4. html+ccs3太阳系行星运转动画

    做一个太阳系八大行星的运转动画,不包括行星的卫星,所有行星围绕太阳公转,行星采用纯色,暂时没有自转. 效果静态图: 动画中包括:太阳及各行星,运行轨道,行星公转动画. 先画好草图,设计好大小和位置,根 ...

  5. 如何在虚拟机安装桌面Ubuntu

    本篇仅为作业... 实验课程:Linux 实验机器:联想y410p 指导老师:刘臣奇 实验时间:2016年10月12日 学生学号:140815 姓名:杨文乾 一.新建一个虚拟机,按照之前建立虚拟机的步 ...

  6. ASP.Net MVC——DotNetZip简单使用,解决文件压缩问题。

    准备工作: 在vs工具栏中找到NuGet 下载DotNetZip 现在就可以使用DotNetZip强大的类库了,在这里我给出一些简单的使用. public ActionResult Export() ...

  7. R语言:常用统计检验

    统计检验是将抽样结果和抽样分布相对照而作出判断的工作.主要分5个步骤: 建立假设 求抽样分布 选择显著性水平和否定域 计算检验统计量 判定 -- 百度百科 假设检验(hypothesis test)亦 ...

  8. ActiveMQ 简单搭建

    ========== ActiveMQ ============== JMS : topic : 一对多: 发布订阅: 不保证数据是否被接受: 不存储topic信息: Queue : 一对一: 点对点 ...

  9. linux使用wkhtmltopdf报错error while loading shared libraries:

    官网提示 linux需要这些动态库.depends on: zlib, fontconfig, freetype, X11 libs (libX11, libXext, libXrender) 在li ...

  10. ASP.NET中后台数据和前台控件的绑定

    关于ASP.NET中后台数据库和前台的数据控件的绑定问题 最近一直在学习个知识点,自己创建了SQL Server数据库表,想在ASP.NET中连接数据库,并把数据库中的数据显示在前台,注意,这里的数据 ...