//
// ViewController.swift
// SwiftBasicDemo
//
// Created by 思 彭 on 16/11/15.
// Copyright © 2016年 思 彭. All rights reserved.
// import UIKit class ViewController: UIViewController { override func viewDidLoad() {
super.viewDidLoad() // 1.常量,变量, 类型转换
let label = "The Width is"
let width =
let widthLabel = label + String(width) //2.拼接字符串
let apples =
let oranges =
let appleSummany = "I have \(apples) apples"
let fruitSummany = "I have \(apples + oranges) fruits" // 3.数组,字典的使用
var shoppingList = ["catfish", "water", "tulips", "blue paint"]
shoppingList[] = "bottle of water"
var occupations = [
"Malcolm": "Captain",
"Kaylee": "Mechanic",
]
// 当没有key,则默认师插入,否则是修改
occupations["janyne"] = "Public Relations" // 4.创建空字典,空数组
let emptyArray = [String]()
let emptyDic = [String: Float]() // 当类型可以被推断,使用以下方法是错误的
/*
let emptyArray1 = []
let emptyDic1 = [:]
*/ shoppingList = []
occupations = [:] // 5.if条件判断
let individualScores = [, ,, , ]
var teamScore =
for score in individualScores {
if score > {
teamScore +=
}
else {
teamScore +=
}
}
print("teamScore = \(teamScore)") // 6.可选类型?
var optionString: String? = "Hello"
print(optionString == nil) // false var optionName: String? = "John Appleseed"
var greeting = "Hello!"
// 守护
if let name = optionName {
greeting = "Hello,\(name)"
}
print("greeting = \(greeting)") // 7.可选值为nil ??类似三目 当可选类型不存在为nil,则使用??后面的默认值
let nickName: String? = nil
let fullName: String = "John Appleseed"
let informalGreeting = "Hi \(nickName ?? fullName)"
print(informalGreeting) // 8.Switch的使用
let vegetable = "red pepper"
switch vegetable {
case "celery":
print("Add some raisins and make ants on a log.")
case "cucumber", "watercress": //多个值
print("That would make a good tea sandwich.")
case let x where x.hasSuffix("pepper"): // 条件判断
print("Is it a spicy \(x)?")
// 注意:default必须有,否则报错
default:
print("Everything tastes good in soup.")
} // 9. 元组的使用 找出最大值
// 注意: 最后一个,可要可不要,都不会报错
let interestingNumbers = [
"Prime" : [, , , , , ],
"Fibonacci": [, , , , , ],
"Square": [, , , , ]
]
var largest =
for (kind, numbers) in interestingNumbers {
print(kind)
for number in numbers {
if number > largest {
largest = number
}
}
}
print(largest) // 10. while循环 2 可能一次也不执行
var n =
while n < {
n = n *
}
print(n) // repeat while循环 4 注意:至少会执行一次
var m =
repeat {
m = m *
}while m <
print(m) // 11. ..<的使用 6
var total =
for i in ..< { // 注意不要使用空格,否则报错
total += i
}
print("total = \(total)") // 12: 函数和元组
// 返回值为string
func greet(person: String, day: String) -> String { return "Hello \(person),today = \(day)."
}
//函数调用
let str = greet(person: "SiSi", day: "Tuesday")
print("str = \(str)") // 13. _参数名可以省略
func greet1 (_ person: String, on day: String) -> String { return "Hello \(person), today is \(day)"
}
print(greet1("haha", on: "hahahah")) // 14. 元组 --- 函数返回多个值
func calculatevalue(scores: [Int]) -> (min: Int, max: Int, sum: Int) { var min = scores[]
var max = scores[]
var sum =
for score in scores {
if score > max {
max = score
}
else if score < min {
min = score
}
sum += score
}
return (min, max, sum)
} // 函数调用
let result = calculatevalue(scores: [, , , , ])
print(result.min)
print(result.max)
print(result.) // 下标调用: 注意: 下标从0开始 // 15.参数不特定指定数组 每一个值为Int
func sumOf(numbers: Int...) ->Int { var sum =
for number in numbers {
sum += number
}
return sum
}
print(sumOf(numbers: ,,,)) // 16.函数的嵌套 15
func returnFifteen() ->Int { var y =
func add() {
y +=
}
add()
return y
}
print(returnFifteen()) // 17. 函数的返回值是一个函数类型 8
func makeIncrement() -> ((Int) -> Int) {
func addOne(number: Int) -> Int {
return + number
}
return addOne
}
var increment = makeIncrement()
print(increment()) // 18. 函数的参数是函数类型 true
func hasAnyMatches(list: [Int], condition: (Int) -> Bool) -> Bool { for item in list {
if condition(item) {
return true
}
}
return false
}
func lessThanTen(number: Int) -> Bool { return number <
}
var numbers = [, , , ]
print(hasAnyMatches(list: numbers, condition: lessThanTen)) // 19. map
numbers.map({ (number: Int) -> Int in
let result = * number
return result
})
let mappedNumbers = numbers.map { (number) in
* number
}
print(mappedNumbers)
}
}

每一条对应每一个语法知识点,注释很详细哟!!!

Swift3.0基础语法学习<一>的更多相关文章

  1. Swift3.0基础语法学习<三>

    枚举和结构体: // // ViewController3.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright ...

  2. Swift3.0基础语法学习<二>

    对象和类: // // ViewController2.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/15. // Copyright © ...

  3. Swift3.0基础语法学习<五>

    异常处理: // // ViewController5.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright © ...

  4. Swift3.0基础语法学习<四>

    协议和扩展: // // ViewController4.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright ...

  5. swift3.0基础语法

    swift 3.0 基础语法 目录 01-变量和常量 02-运算符 03-可选项 04-条件语句 05-循环 06-字符串 07-元组 08-数组 09-字典 10-对象和类 11-枚举 12-属性 ...

  6. swift3.0基础语法(2)

    变量/常量,元组声明 var aaa = 0;//声明变量aaa 首次赋值时自动解析为Int类型 var aaa:Int = 0;//声明Int类型变量aaa let aaa = 0;//声明常量aa ...

  7. 学习java之基础语法(三)

    学习java之基础语法(三) java运算符 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运 ...

  8. Swift基础语法学习总结(转)

    Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...

  9. Swift基础语法学习总结

    Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...

随机推荐

  1. TF启程

    我第一次开始接触到TensorFlow大概是去年五月份,大三下,如果一年多已过,我却还在写启程..这进度,实在汗颜.. 一个完整的tensorflow程序可以分为以下几部分: Inputs and P ...

  2. View相关面试问题-ListView缓存面试问题讲解

    什么是ListView: ListView就是一个能数据集合以动态滚动的方式显示在用户界面上的View. ListView适配器模式: 有了Adapter可以将数据源与view进行分离~ ListVi ...

  3. Nginx概念

    这篇文章只是单纯的介绍nginx以及一些相关概念,有的概念在实际应用中不会用到,不理解也没有关系,这不影响我们学习nginx. Nginx是什么 如果你知道http协议和httpd是什么,那你就会容易 ...

  4. JAVA bean为何要实现序列化

    简而言之:序列化,就是为了在不同时间或不同平台的JVM之间共享实例对象.即序列化出于两个原因:①.用于持久化到磁盘上:②.用于作为数据流在网络上传输. 所谓的Serializable,就是java提供 ...

  5. MySQL常见内存不足启动失败的完美解决方法

    Move to https://www.jb51.net/article/136432.htm

  6. 『NOIP 2019Day2 T3』 保卫王国(defense)

    重温NOIP2018的试题,发现只要好好想想还是能想出一些东西的. 比如说本题是一个DDP的模板题,硬是做成了倍增优化DP的题目. 对于给出的$n$个节点的树,每个点都有点权$v_i$,共$Q$次询问 ...

  7. docker打包flask简单程序

    简单代码: from flask import Flask app=Flask(__name__) @app.route('/') def hello(): return 'hello world' ...

  8. 「CF803C」 Maximal GCD

    题目链接 戳我 \(Solution\) 令\(gcd\)为\(x\),那么我们将整个序列\(/x\),则序列的和就变成了\(\frac{n}{x}\),所以\(x\)必定为\(n\)的约数所以现在就 ...

  9. InnoDB记录存储结构

    InnoDB是一个将数据存储到磁盘上的存储引擎.对于更新/写入的数据,先将数据从磁盘中加载到内存,更新后再将数据刷新到磁盘. 行格式 而磁盘与内存交互的数据,InnoDB采取将数据分为若干页,一页一般 ...

  10. python文件夹中pycache文件是什么

    python(pycache文件的问题):python属于脚本语言,执行python文件需要通过python解释器将源码转换为字节码,然后供cpu读取,pycache文件夹里面保存的就是py文件对应的 ...