遇到这种问题可以利用溢出运算符解决该问题,

作者: 编程  发布:2019-11-22

/*

前言: 作为一个水平一般,没有追求的OC开发者,从swift1.0开始就买了几本swift参考书,直到现在swift3.0+了还没看完一本完整的swift参考书,没有写过一个完整的swif项目甚是惭愧,其实期间也断断续续学了一阵子,没有坚持住,加之公司项目一直是以OC为主,大量时间浪费在写业务代码,老是抱着swift不成熟,API还不稳定等一等的井底之蛙心态,现在是时候反省下自己了,所谓知途迷返,亡羊补牢,为时不晚。(从现在开始,立刻,马上学习swif的必要性重要性可以参考下微博@没故事的卓同学的文章: Swift 再等等?我的答案是:快上车http://www.jianshu.com/p/2452cb269ae2
话不多说,先撸为敬,以下是记录整理学习小码哥Mr why 的swift课程笔记,以作为复习查看之用
一 . 初识swift
Playground是什么?
从Xcode6开始出现(Swift开始出现) 翻译为:操场/游乐场,对于学习Swift基本语法非常方便,所见即所得(快速查看结果),语法特性发生改变时,可以快速查看.
Swift最基本的语法变化:

  • 数据类型

  • 运算符

  • 流程控制

  • Swift简介:
    支持所有C和Object-C的基本类型,支持面向过程和面向对象的编程机制;
    两种功能强劲的集合类型:数组和字典;
    元组;
    可选类型;
    Swift是一种类型安全的语言。

  • Playground提供了及时查看的功能
    不支持人机交互
    不支持应用程序
    快速体验Swift语法,测试API功能

  • 数据类型
    1:变量与常量的声明方式
    2:整型与浮点型
    3:元组类型
    4:可选类型

  • 核心代码

 算术运算符: 除了取模, 其它和OC一样, 包括优先级

  1. swift中如何导入框架? 直接 import 框架名称 即可
    例如 import UIKit
  2. 如何定义标识符?
    定义标识符必须告知系统 该标识符是一个变量还是常量
    格式: let/var 标识符的名称 : 标识符的数据类型 = 值
  3. 语句结束有何变化?
    一般情况下不需要写; 如果一行中有多条语句;则需要以;分割
  4. 怎么打印内容?
    print(a)
    二. 常量&变量
    变量的基本使用
    let a :Int =40
    //a=20// 错误写法,当一个字段定义为常量时是不可以修改的
    var b : Int = 60
    一般习惯写成 var b = 60 (swift中的类型推导)
    变量的基本使用
    let a :Int =40
    //a=30// 错误写法,当一个字段定义为常量时是不可以修改的
    var b : Int = 60
    一般习惯写成 var b = 60 (swift中的类型推导)
    三. swift中数据类型
    swift类型的介绍
    Swift中的数据类型也有:整型/浮点型/对象类型/结构体类型等等
    先了解整型和浮点型
    整型
    有符号
    Int8 : 有符号8位整型
    Int16 : 有符号16位整型
    Int32 : 有符号32位整型
    Int64 : 有符号64位整型
    Int : 和平台相关(默认,相当于OC的NSInteger)
    无符号
    UInt8 : 无符号8位整型
    UInt16 : 无符号16位整型
    UInt32 : 无符号32位整型
    UInt64 : 无符号64位整型
    UInt : 和平台相关(常用,相当于OC的NSUInteger)(默认)
    浮点型
    Float : 32位浮点型
    Double : 64浮点型(默认)
    // 定义一个Int类型的变量m,并且赋值为10
    var m : Int = 10
    // 定义一个Double类型的常量n,并且赋值为3.14
    let n : Double = 3.14
    swift中的类型推导
    swift是强类型的语言
    swift中任何一个标识符都有明确的类型
    注意:
    如果定义一个标识符时有直接进行赋值,那么标识符后面的类型可以省略. 因为swift有类型推导,会自动根据后面的赋值来决定前面的标识符的数据类型
    可以通过option+鼠标左键来查看变量的数据类型
    // 定义变量时没有指定明确的类型,但是因为赋值给i一个20.20为整型.因此i为整型
    var i = 20
    // 错误写法:如果之后赋值给i一个浮点型数值,则会报错
    // i = 30.5
    // 正确写法
    var j = 3.33
    j = 6.66
    swift中基本运算
    /
    import UIKit
    // 定义变量时没有指定明确的类型,但是因为赋值给i一个20.20为整型.因此i为整型
    var i=20
    //i=30.5 // 错误写法:如果之后赋值给i一个浮点型数值,则会报错
    // 正确写法
    var j=3.33
    j=6.66
    /

    Swift中在进行基本运算时必须保证类型一致,否则会出错
    相同类型之间才可以进行运算
    因为Swift中没有隐式转换
    数据类型的转化
    Int类型转成Double类型:Double(标识符)
    Double类型转成Int类型:Int(标识符)
    */
    let a = 10
    let b = 3.14
    // 错误写法
    //let c = a + b
    //let c = a * b
    // 正确写法
    let c = Double(a)+b
    let d = a + Int(b)

 + - * / % ++ --

三.逻辑分支
(一). 分支的介绍
分支即if/switch/三目运算符等判断语句
通过分支语句可以控制程序的执行流程
(二). if分支语句
和OC中if语句有一定的区别
判断句可以不加(),在Swift的判断句中必须有明确的真假,不再有非0即真,必须有明确的Bool值,Bool有两个取值:false/true
/
//1 swift 中if的写法
//1> if后面的()可以省略
//2>判断句不在有非0/nil即真,判断句中必须有明确的真假Bool值,Bool值有两个取值:false/tru
// 演练一:
let a = 10
// 错误写法: 不再有非0即真 必须有明确的Bool值 false/true
//if a {
// print("a")
//}
// 正确写法
if a > 9 {
print(a)
}
//2. swift 中else if的用法:用法和if的用法一致
let score = 92
if score < 0 || score>100 {
print("不合理的分数")
} else if score < 60 {
print("不及格")
} else if score < 80 {
print("及格")
} else if score < 90 {
print("良好")
} else if score <= 100 {
print("优秀")
}
/

(三). 三目运算符
Swift 中的 三目 运算保持了和 OC 一致的风格
/
//3. 三目运算符
//取二者最大值
let x = 20
let y = 30
// if写法
//var result = 0
//if m > n {
// result = m
//}else {
// result = n
//}
let result = x > y ? x :y
/

(四).guard的使用
guard是Swift2.0新增的语法
它与if语句非常类似,它设计的目的是提高程序的可读性
guard语句必须带有else语句,它的语法如下:
当条件表达式为true时候跳过else语句中的内容,执行语句组内容
条件表达式为false时候执行else语句中的内容,跳转语句一般是return、break、continue和throw
guard 条件表达式 else {
// 条换语句
break
}
语句组
/
//例子
var age = 18
func online(age : Int) -> Void {
guard age >= 18 else {
print("回家去找妈妈")
return
}
print("小伙子可以上网了")
}
online(age: age)
/

(五).switch分支
switch的介绍
Switch作为选择结构中必不可少的语句也被加入到了Swift中
只要有过编程经验的人对Switch语句都不会感到陌生
但苹果对Switch进行了大大的增强,使其拥有其他语言中没有的特性
switch的简单使用
基本用法和OC用法一致
不同之处:
switch后可以不跟()
case后可以不跟break(默认会有break)
/
//1. switch的基本用法
let sex = 0
switch sex {
case 0:
print("男")
case 1:
print("女")
default:
print("其他")
}
/

简单使用补充1:
一个case判断中,可以判断多个值
多个值以,隔开
/
let sex1 = 0
switch sex1 {
case 0,1:
print("正常人")
default:
print("其他")
}
/

简单使用补充2:
如果希望出现之前的case穿透,则可以使用关键字fallthrough
/
let sex2 = 0
switch sex2 {
case 0:
print("男")
fallthrough
case 1:
print("女")
default:
print("其他")
}
/

Switch支持多种数据类型
浮点型的switch判断
/
let f = 3.14
switch f {
case 3.14:
print("π")
default:
print("not π")
}
/

支持字符串类型
字符串的使用后面会详细讲解
/
let m = 5
let n = 10
var results = 0
let operation = "+"
switch operation {
case "+" :
results = m + n
case "-" :
9159.com ,results = m - n
case "
" :
results = m * n
case "/" :
results = m / n
default:
results = 0
print("非法操作符")
}
/*
switch支持区间判断
什么是区间?
通常我们指的是数字区间:010,100200
swift中的区间常见有两种
半开半闭区间:0..<10 表示:0~9,不包括10
闭区间:0...10 表示:0~10
*/
let scores = 88
switch score {
case 0..<60:
print("不及格")
case 60..<80:
print("及格")
case 80..<90:
print("良好")
case 90..<100:
print("优秀")
default:
print("满分")
}

import Foundation

// 变量var 常量let
// 表示符必须以字符(包括Unicode字符)、下划线(_)、美元符($)开头,但不能以数字开头,不可以包含空格,不能使用关键字,其长度没有限制。
var string = "hello"
string += "world"
println(string)

let 
					

本文由9159.com发布于编程,转载请注明出处: 遇到这种问题可以利用溢出运算符解决该问题,

关键词: