Swift入门(一)
来源:互联网 发布:建筑设计软件试题 编辑:程序博客网 时间:2024/05/16 12:04
常量、变量
声明常量:let
声明变量:var
eg. let conNum = 1; var num = 2;基本数据类型
Int、 Float、Double、Bool、tuples、optional
其中
tuples 元祖,可以包含不同类型值的集合;
optional 可选值,表示一个值可以为空(nil),如果一个变量没有声明为optional,那么必须给它一个确切的值;类型转换
需要指定转换类型:Sometype(val)运算符
与其他语言有相似的规则
特殊规则- 可以对Float求余,8 % 2.5 // 等于 0.5;
- 空值运算符 a ?? b,对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b,表达式a必须是Optional类型,默认值b的类型必须要和a存储值的类型保持一致
- 区间运算符
闭区间运算符(a...b); 半开区间(a..<b
字符串
Swift 的String类型是值类型。 如果您创建了一个新的字符串,那么当其进行常量、变量赋值操作或在函数/方法中传递时,会进行值拷贝。 任何情况下,都会对已有字符串值创建新副本,并对该新副本进行传递或赋值操作。数组
var shoppingList: [String] = ["Eggs", "Milk"]shoppingList.append("Flour")shoppingList += ["Chocolate Spread","Cheese","Butter"]shoppingList[0] = "Six eggs"shoppingList.insert("Maple Syrup", atIndex: 0)let mapleSyrup = shoppingList.removeAtIndex(0)for item in shoppingList { println(item)}
- 字典
var airports: [String:String] = ["TYO": "Tokyo", "DUB": "Dublin"]for (airportCode, airportName) in airports { println("\(airportCode): \(airportName)")}for airportCode in airports.keys { println("Airport code: \(airportCode)")}// Airport code: TYO// Airport code: LHRfor airportName in airports.values { println("Airport name: \(airportName)")}// Airport name: Tokyo// Airport name: London Heathrowlet airportCodes = Array(airports.keys)// airportCodes is ["TYO", "LHR"]let airportNames = Array(airports.values)// airportNames is ["Tokyo", "London Heathrow"]
数组和字典都是在单个集合中存储可变值。如果我们创建一个数组或者字典并且把它分配成一个变量,这个集合将会是可变的。这意味着我们可以在创建之后添加更多或移除已存在的数据项来改变这个集合的大小。与此相反,如果我们把数组或字典分配成常量,那么它就是不可变的,它的大小不能被改变。
- for 循环
let names = ["Anna", "Alex", "Brian", "Jack"]for name in names { println("Hello, \(name)!")}let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]for (animalName, legCount) in numberOfLegs { println("\(animalName)s have \(legCount) legs")}for var index = 0; index < 3; ++index { println("index is \(index)")}
- while、do while
while condition { statements}do { statements} while condition
- if
var temperatureInFahrenheit = 90if temperatureInFahrenheit <= 32 { println("It's very cold. Consider wearing a scarf.")} else if temperatureInFahrenheit >= 86 { println("It's really warm. Don't forget to wear sunscreen.")} else { println("It's not that cold. Wear a t-shirt.")}
- switch
let someCharacter: Character = "e"switch someCharacter {case "a", "e", "i", "o", "u": println("\(someCharacter) is a vowel")case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m","n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z": println("\(someCharacter) is a consonant")default: println("\(someCharacter) is not a vowel or a consonant")}
这里default语句是必须的,否则编译不通过;不需要break,因为只会匹配一种情况。
case 中还可以加条件判断where
let yetAnotherPoint = (1, -1)switch yetAnotherPoint {case let (x, y) where x == y: println("(\(x), \(y)) is on the line x == y")case let (x, y) where x == -y: println("(\(x), \(y)) is on the line x == -y")case let (x, y): println("(\(x), \(y)) is just some arbitrary point")}// 输出 "(1, -1) is on the line x == -y"
- continue、break、fallthrough
continue、break与其他语言用法相同;
fallthrough用在switch语句中,实现条件贯穿,相当于Java或者其他语言case块中没有写break的情况:
let integerToDescribe = 5var description = "The number \(integerToDescribe) is"switch integerToDescribe {case 2, 3, 5, 7, 11, 13, 17, 19: description += " a prime number, and also" fallthroughdefault: description += " an integer."}println(description)// 输出 "The number 5 is a prime number, and also an integer."
0 0
- Swift入门(一)
- Swift专栏:Swift基础入门(一)
- Swift快速入门(一)第一个Swift程序
- Swift快速入门(一)第一个Swift程序
- iOS8开发~Swift(一)入门
- swift语言快速入门(一)
- Swift快速入门(一)基本类型
- Swift(一、基本入门)
- swift入门一:设置window
- Swift编程语言入门视频教程(一)-- 输出语句
- Swift入门(一)——基本语法
- Swift入门(二)
- swift入门(1)
- iOS中 Swift初级入门学习(一)
- iOS中 Swift初级入门学习(一)
- Swift专栏:Swift基础入门(二)
- Swift专栏:Swift基础入门(三)
- Swift--数组(一)
- HDU3986Harry Potter and the Final Battle(SPFA删边)
- Awk脚本
- 数据结构之递归
- 类和方法
- sqoop-1.99.3 安装配置
- Swift入门(一)
- JavaScript创建对象的几种方式
- C语言中的atan和atan2
- mongodb系列之三:java分页
- Solr学习笔记(四)——Range Faceting
- 左偏树
- ubuntu下使用PIL中的show函数,无法显示图片的问题
- Surrounded Regions--LeetCode
- Python 列表(list)操作