//
// 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. zencart更改css按钮的宽度css buttons

    includes\functions\html_output.php 大概323行的zenCssButton函数 function zenCssButton($image = '', $text, $ ...

  2. SPOJ 1825 经过不超过K个黑点的树上最长路径 点分治

    每一次枚举到重心 按子树中的黑点数SORT一下 启发式合并 #include<cstdio> #include<cstring> #include<algorithm&g ...

  3. netty-2.客户端与服务端互发消息

    (原) 第二篇,客户端与服务端互发消息 与第一篇的例子类似,这里服务端需要三个类,客户端也需要三个类. 服务端关键代码如下:MyServer与上一个例子中的TestServer 差多,这里只列举不同的 ...

  4. java面试题(目录版)

    在https://www.cnblogs.com/marsitman/p/9539369.html  根据自己以往的面试经验,在该基础上做了补充和删减,均链接到相应的地址(链接失效请留言评论). 一. ...

  5. 问题[scrapy.spidermiddlewares.offsite] DEBUG: Filtered offsite request to...

    原因是二次解析的域名被过滤掉了, 解决办法 解决办法一: yield scrapy.Request(url=detail_url, meta={'item': item}, callback=self ...

  6. WTL自定义控件:edit输入响应

    自定义的edit控件,获取edit输入响应的消息: 头文件部分: BEGIN_MSG_MAP(CCheckEditEx) MESSAGE_HANDLER(WM_CHAR, OnChar) END_MS ...

  7. ML paper 导图笔记.md

    <Learning Structured Representation for Text Classification via Reinforcement Learning> <基于 ...

  8. Vue:选中商品规格改变字体和边框颜色(默认选中第一种规格)

    效果图: CSS: <div class="label"> <p>标签类别</p> <ul> <li v-for=" ...

  9. delphi请求http接口中文乱码问题

    请求http接口的时候参数值是中文乱码: http接口一般都是由java,php以及C#开发而成的,乱码的原因也是由于编码的问题,一般传递数据的都是utf8,然后传递的时候都会urlEcode 那么d ...

  10. codeforces643D

    阿狸的基环内向树森林 Background 当阿狸醒来的时候,发现自己处在基环内向森林的深处,阿狸渴望离开这个乌烟瘴气的地方.“明天还有与桃子的约会呢”,阿狸一边走一边说,“可是,这个森林的出口在哪儿 ...