Swift3.0基础语法学习<一>
//
// 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基础语法学习<一>的更多相关文章
- Swift3.0基础语法学习<三>
枚举和结构体: // // ViewController3.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright ...
- Swift3.0基础语法学习<二>
对象和类: // // ViewController2.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/15. // Copyright © ...
- Swift3.0基础语法学习<五>
异常处理: // // ViewController5.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright © ...
- Swift3.0基础语法学习<四>
协议和扩展: // // ViewController4.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright ...
- swift3.0基础语法
swift 3.0 基础语法 目录 01-变量和常量 02-运算符 03-可选项 04-条件语句 05-循环 06-字符串 07-元组 08-数组 09-字典 10-对象和类 11-枚举 12-属性 ...
- swift3.0基础语法(2)
变量/常量,元组声明 var aaa = 0;//声明变量aaa 首次赋值时自动解析为Int类型 var aaa:Int = 0;//声明Int类型变量aaa let aaa = 0;//声明常量aa ...
- 学习java之基础语法(三)
学习java之基础语法(三) java运算符 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运 ...
- Swift基础语法学习总结(转)
Swift基础语法学习总结 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...
- Swift基础语法学习总结
Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...
随机推荐
- Change :hover CSS properties with JavaScript
I need to find a way to change CSS :hover properties using JavaScript. For example, suppose I have t ...
- BZOJ 2157: 旅游 (树链剖分+线段树)
树链剖分后线段树维护区间最大最小值与和. 支持单点修改与区间取反. 直接写个区间取反标记就行了.线段树板题.(200行6000B+ 1A警告) #include <cstdio> #inc ...
- haproxy和keepalived的理解(转载)
关于此两者,随便google一下都会有大量的文章,因此这里也不用介绍如何来进行安装和配置了.主要从一个整体方案的角度来描述什么要这样做,以及这样做所解决的问题. 所有的系统,都是先经历一个单台机器搞所 ...
- 《Learning Structured Representation for Text Classification via Reinforcement Learning》论文翻译.md
摘要 表征学习是自然语言处理中的一个基本问题.本文研究了如何学习文本分类的结构化表示.与大多数既不使用结构又依赖于预先指定结构的现有表示模型不同,我们提出了一种强化学习(RL)方法,通过自动覆盖优化结 ...
- 设计一个Mypoint类,求两个点之间的距离
package Test; public class test6 { public static void main(String[] args) { // TODO Auto-generated m ...
- 【winfrom-Button】设置带图标样式的Button
this.myButton.BackColor = System.Drawing.SystemColors.Control; this.myButton.FlatAppearance.BorderCo ...
- 获取网卡速率,cpu使用率
];//获取网卡名称 PerformanceCounter NetworkR = new PerformanceCounter("Network Interface", " ...
- tar:文件打包归档
造冰箱的大熊猫@cnblogs 2018/12/24 1.什么是tar 1.1.tar tar命令将指定的文件.文件夹打包(存储)为一个文件(归档文件,archive file).tar将被归档文件以 ...
- Object.keys 返回由一个给定对象的自身可枚举属性组成的数组
在实际开发中,我们有时需要知道对象的所有属性, 原生js给我们提供了一个很好的方法:Object.keys(),该方法返回一个数组 http://blog.csdn.net/u014035151/ar ...
- MessagePack Java 0.6.X 动态类型
我们知道 Java 是一个静态类型的语言.通过输入 Value MessagePack能够实现动态的特性. Value 有方法来检查自己的类型(isIntegerType(), isArrayType ...